Javascript 用JSON填充ExtJS组合框
我使用的是ExtJS(3),只是尝试使用JSON查询的数据库中的记录填充一个组合框/下拉列表 以下是我的JSON调用:Javascript 用JSON填充ExtJS组合框,javascript,extjs,combobox,extjs3,Javascript,Extjs,Combobox,Extjs3,我使用的是ExtJS(3),只是尝试使用JSON查询的数据库中的记录填充一个组合框/下拉列表 以下是我的JSON调用: var projectDropDown = new Ext.data.Store({ autoLoad: true, url: 'dropdown.json', storeId: 'projectDropDown', idProperty: 'ProjectID', fields: [ 'ProjectID', 'ProjectName'
var projectDropDown = new Ext.data.Store({
autoLoad: true,
url: 'dropdown.json',
storeId: 'projectDropDown',
idProperty: 'ProjectID',
fields: [ 'ProjectID', 'ProjectName' ]
});
然后是我的组合框代码:
{
xtype: 'combo',
id: 'ProjectName',
fieldLabel: 'Project Name',
valueField: 'ProjectID',
displayField: 'ProjectName',
store: projectDropDown,
typeAhead: true,
mode: 'local',
triggerAction: 'all',
emptyText:'Select a Project...',
selectOnFocus:true
}
JSON会像这样返回我的数据:
[
{
"ProjectID":"1",
"ProjectName":"Mike's Test Project"
},
{
"ProjectID":"2",
"ProjectName":"My Second Test Project"
},
{
"ProjectID":"3",
"ProjectName":"My Third Project"
},
{
"ProjectID":"6",
"ProjectName":"More testing from me"
}
]
我想我已经很接近了,我只是不知道我错过了什么来建立联系
感谢您的帮助。我要做的第一步是将存储(或存储大小或其他内容)输出到控制台,以查看数据是否正确加载到存储中 我猜您需要将返回到某个根对象中的JSON封装起来。尝试使用指定的
root
元素为您的商店指定一个名称,如下所示:
var projectDropDown = new Ext.data.Store({
autoLoad: true,
url: 'dropdown.json',
storeId: 'projectDropDown',
reader: new Ext.data.JsonReader(
{
root: 'projects'
}),
idProperty: 'ProjectID',
fields: [ 'ProjectID', 'ProjectName' ]
});
然后将返回的JSON改为如下所示
{
"projects" : [
{"ProjectID":"1","ProjectName":"Mike's Test Project"},
{"ProjectID":"2","ProjectName":"My Second Test Project"},
....
]
}
如何更改返回的JSON?我不知道该怎么做,也不知道那是什么called@Mike或者事实上,现在我看到它只是从一个JSON文件中提取?只需像文本文档一样编辑它,我就能够更改返回JSON的代码,因此现在它看起来就像您列出的那样:{“projects”:[[{“ProjectID”:“1”,“ProjectName”:“Mike的测试项目”},{“ProjectID”:“2”,“ProjectName”:“我的第二个测试项目”},{“ProjectID”:“3”,“ProjectName”:“我的第三个项目”},{“ProjectID”:“6”,“ProjectName”:“来自我的更多测试”}]}但是当我添加以下行时:reader:new Ext.data.JsonReader({root:'projects'},我得到一个错误,Firebug告诉我“missing”)在参数列表之后,“我想我的存储的创建方式可能有问题-在Firebug中,'projectDropDown'变量中没有数据项….?好的,我发现了问题并解决了,是在查询数据库的代码中,我使用了另一个文件中的一段代码进行测试,它起了作用,所以我一直在比较g这两个,它现在正在流行,至少它是有效的-谢谢你的帮助