06.02.2015, 18:11
|
Аспирант
|
|
Регистрация: 05.02.2015
Сообщений: 51
|
|
Сообщение от Roll
|
А вы сможете сделать готовый пример за 1000 руб?
|
На чистом JS Вас не устроит? Думаю, разницы для Вас не будет.
Последний раз редактировалось freee, 06.02.2015 в 18:49.
|
|
07.02.2015, 22:35
|
Профессор
|
|
Регистрация: 19.11.2012
Сообщений: 178
|
|
Если убрать proxy типа memory и параметр data, затем раскоментировать proxy типа ajax, то ваш PHP-скрипт будет получать параметр query с частью текста введённого в поле.
Пример.
var ds = Ext.create('Ext.data.Store', {
fields: [
{name: "id", type: "int", mapping: 0},
{name: "inn", type: "int", mapping: 1},
{name: "Legal_Form_Desc", type: "string", mapping: 2},
{name: "Customer_Full_Nm", type: "string", mapping: 3},
{name: "Source_System_Desc", type: "string", mapping: 4}
],
//proxy: {
// type: 'ajax',
// url: 'http://example.com/myScript.php',
// reader: {
// root: "rows"
// }
//}
proxy: {
type: 'memory',
reader: {
root: "rows"
}
},
data: {
"head":[
"\u2116",
"INN",
"Legal_Form_Desc",
"Customer_Full_Nm",
"Source_System_Desc"
],
"rows":[
[1,"2302042152","\u041e\u041e\u041e","\u0410\u041c\u041f\u0417 \u0411\u0410\u041a\u0410\u0420","\u0411\u0418\u0421\u041a\u0432\u0438\u0442: \u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440",""],
[2,"593300087432","\u0418\u041f","\u0411\u0410\u0419\u0414\u0418\u041d\u0410 \u041e\u041b\u042c\u0413\u0410 \u041f\u0410\u0412\u041b\u041e\u0412\u041d\u0410","\u0411\u0418\u0421\u041a\u0432\u0438\u0442: \u0421\u0430\u043c\u0430\u0440\u0430",""]
]
}
});
var panel = Ext.create('Ext.panel.Panel', {
renderTo: Ext.getBody(),
title: 'Search the Ext Forums',
width: 600,
bodyPadding: 10,
layout: 'anchor',
items: [{
xtype: 'combo',
store: ds,
displayField: 'inn',
valueField: 'id',
typeAhead: false,
hideLabel: true,
hideTrigger:true,
anchor: '100%',
listConfig: {
loadingText: 'Searching...',
emptyText: 'No matching posts found.',
// Custom rendering template for each item
getInnerTpl: function() {
return '<a class="search-item" href="#">' +
'<h3>{inn}: {Customer_Full_Nm}</h3>' +
'</a>';
}
},
pageSize: 10
}, {
xtype: 'component',
style: 'margin-top:10px',
html: 'Live search requires a minimum of 4 characters.'
}]
});
|
|
07.02.2015, 23:48
|
Профессор
|
|
Регистрация: 19.11.2012
Сообщений: 178
|
|
Да, если с сервера может приходить исключительно массив[], а не объект{}, то требуется несколько вмешаться в код библиотеки в указанной версии:
var myReader = Ext.create('Ext.data.reader.Json');
Ext.override(myReader, {
extractData: function(data) {
return this.callParent([data[0].rows]);
}
});
var ds = Ext.create('Ext.data.Store', {
fields: [
{name: "id", type: "int", mapping: 0},
{name: "inn", type: "int", mapping: 1},
{name: "Legal_Form_Desc", type: "string", mapping: 2},
{name: "Customer_Full_Nm", type: "string", mapping: 3},
{name: "Source_System_Desc", type: "string", mapping: 4}
],
proxy: {
type: 'memory',
reader: myReader
},
data: [
{
"head":[
"\u2116",
"INN",
"Legal_Form_Desc",
"Customer_Full_Nm",
"Source_System_Desc"
],
"rows":[
[1,"2302042152","\u041e\u041e\u041e","\u0410\u041c\u041f\u0417 \u0411\u0410\u041a\u0410\u0420","\u0411\u0418\u0421\u041a\u0432\u0438\u0442: \u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440",""],
[2,"593300087432","\u0418\u041f","\u0411\u0410\u0419\u0414\u0418\u041d\u0410 \u041e\u041b\u042c\u0413\u0410 \u041f\u0410\u0412\u041b\u041e\u0412\u041d\u0410","\u0411\u0418\u0421\u041a\u0432\u0438\u0442: \u0421\u0430\u043c\u0430\u0440\u0430",""]
]
}
]
});
var panel = Ext.create('Ext.panel.Panel', {
renderTo: Ext.getBody(),
title: 'Search the Ext Forums',
width: 600,
bodyPadding: 10,
layout: 'anchor',
items: [{
xtype: 'combo',
store: ds,
displayField: 'inn',
valueField: 'id',
typeAhead: false,
hideLabel: true,
hideTrigger:true,
anchor: '100%',
listConfig: {
loadingText: 'Searching...',
emptyText: 'No matching posts found.',
// Custom rendering template for each item
getInnerTpl: function() {
return '<a class="search-item" href="#">' +
'<h3>{inn}: {Customer_Full_Nm}</h3>' +
'</a>';
}
},
pageSize: 10
}, {
xtype: 'component',
style: 'margin-top:10px',
html: 'Live search requires a minimum of 4 characters.'
}]
});
Вводите INN...
Последний раз редактировалось novikov, 07.02.2015 в 23:50.
|
|
|
|