为什么我的ExtJS下拉框无法动态填充?
这是我的 Extjs 的 onReady 函数
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: '/loginjson.json'
}),
reader: new Ext.data.JsonReader(
{root: 'row', fields:['dblist']}
)
});
store.load();
在我的 FormPanel 中,我是这样使用它的
renderTo: document.getElementById("loginform"),
title: "Login Form",
items: [{
xtype: 'combo',
fieldLabel: 'genre',
name: 'genre',
store: store,
autoLoad: true,
displayField: 'dblist',
}
而 Django 返回的 JSON URL 是这样的
http://localhost:8000/loginjson.json
{"row": [{"dblist": "datalist"}]}
但是我的下拉框没有填充数据,我觉得在 extJS 的某个地方出了问题,但我找不到。
2 个回答
0
我觉得你用的JSON读取器的字段属性配置得不太对。你可以试试这样做:
reader: new Ext.data.JsonReader({
root: 'row'
, fields:[{name: "dblist"}]
})
4
如果你希望下拉框(ComboBox)的表现更像HTML中的选择框(select),那么你需要在下拉框的配置中添加一个属性:
triggerAction: 'all'
这样,当你点击下拉框的触发按钮时,所有的选项都会显示出来。
另外,下拉框的配置还需要一个叫做valueField的属性:
valueField: 'dblist'
而且,你不需要手动调用数据存储的加载方法。下拉框会在合适的时候自动处理这个事情。