【发布时间】:2018-09-14 05:41:19
【问题描述】:
我有一个combobox,它使用 AJAX 代理连接到数据库。问题是;
- 当我在
combobox中键入任何字符串时,它会在 XHR 加载结束时删除键入的字符串.. - 其次,即使在请求数据中搜索到的记录可用,它也不会显示!
它正在使用param 进行正确的 URL 请求,XHR 响应的数据集中已经存在键入的输入,但不会在下拉列表中的选择中带来搜索记录...
http://localhost:PORT/myapp/all/list?_dc=1522929831253&description=Sample&page=1&start=0&limit=1000
问题是我有另一个具有相同配置的combobox,它运行良好,但这个不是!
我怎样才能克服这种情况?这里有一些组合框的sn-ps;
组合框:
Ext.define('MyApp.AccCombo',{
extend:'Ext.form.field.ComboBox',
xtype:'samplecombo',
requires: [],
name: 'Sample Combo',
fieldLabel: translations.comboDesc,
displayField:'description',
valueField:'sameid',
store: {
pageSize: 0,
proxy: {
type: 'ajax',
//idParam: 'sameid', // Thought idParam is not 'id' there can't be success and added this config but didnot effect
url: MyApp.getUrl() + '/service/list',
reader: {
type: 'json',
rootProperty: 'data'
}
},
autoLoad: true,
//autoSync: true,
//remoteFilter: true
},
queryMode: 'remote',
queryParam: 'description',
autoLoad:true,
bind: '{currRec.sameid}'
});
这里是示例 JSON;
{
"code": "XSAMPLE",
"samid": 105899092,
"description": "Sample Item",
},
【问题讨论】:
-
你在哪里 store.fields?字段:[“samid”,“描述”]。不确定这是否是问题,但无论您是否需要定义商店字段。
-
将
queryMode从remote切换到local。 -
对于
bind: '{currRec.sameid}',我认为你应该使用bind: { value: '{currRec.sameid}' } -
@stackato 我已将模型配置添加到存储但仍然表现相同...
-
@Tyr 它适用于
local设置,但无法理解为什么它没有为选择带来类型值!? XHR 请求获取数据集并且记录已经存在,即使在dropdown上,但不知何故当它是remote而不是local时无法选择记录!
标签: javascript search extjs combobox store