带有远程JSON存储的ExtJS分页组合。通过分页显示所选值
我有一个带有远程存储的ExtJS组合,它以JSON格式返回给我数据。例如,当我在第一个页面上选择一个值,然后导航到另一个页面时,组合框将显示选定的id,而不是该值 如何始终显示选定的值 代码: 例如: 更多信息(案例研究):带有远程JSON存储的ExtJS分页组合。通过分页显示所选值,extjs,combobox,paging,jsonstore,Extjs,Combobox,Paging,Jsonstore,我有一个带有远程存储的ExtJS组合,它以JSON格式返回给我数据。例如,当我在第一个页面上选择一个值,然后导航到另一个页面时,组合框将显示选定的id,而不是该值 如何始终显示选定的值 代码: 例如: 更多信息(案例研究): 我有一张表格可以更新记录。我单击一个项目,然后我的服务器从数据库返回值。然后出现一个带有UI的窗口。对于所有分页组合,它只返回id。所以,除非我导航到带有返回id的项的页面,否则我看不到值。如果禁用分页并加载所有值,所有值都会按预期工作,但加载数千个值并不好。我更改了逻辑。
我有一张表格可以更新记录。我单击一个项目,然后我的服务器从数据库返回值。然后出现一个带有UI的窗口。对于所有分页组合,它只返回id。所以,除非我导航到带有返回id的项的页面,否则我看不到值。如果禁用分页并加载所有值,所有值都会按预期工作,但加载数千个值并不好。我更改了逻辑。另外发送一个combobox值的Id,然后使用该Id设置extraProxyParams并加载存储。然后清洁extraProxyParams。因此,在用户搜索另一个值后,他可以这样做。我更改了逻辑。另外发送一个combobox值的Id,然后使用该Id设置extraProxyParams并加载存储。然后清洁extraProxyParams。因此,在用户搜索另一个值后,他可以这样做。可以通过以下方式进行修复:
Ext.override(Ext.form.field.ComboBox,{
findRecord: function(field, value) {
var foundRec = null;
Ext.each(this.lastSelection, function(rec) {
if (rec.get(field) === value) {
foundRec = rec;
return false; // stop 'each' loop
}
});
if (foundRec) {
return foundRec;
} else {
return this.callParent(arguments);
}
}
});
试试看:可以通过以下方式进行修复:
Ext.override(Ext.form.field.ComboBox,{
findRecord: function(field, value) {
var foundRec = null;
Ext.each(this.lastSelection, function(rec) {
if (rec.get(field) === value) {
foundRec = rec;
return false; // stop 'each' loop
}
});
if (foundRec) {
return foundRec;
} else {
return this.callParent(arguments);
}
}
});
试一试: