Extjs4 为JSON对象创建复选框
我正在使用extjs4,我需要根据我的JSON对象添加复选框组 JSON ExtJs Ext.define“providerList”{ 扩展:“Ext.data.Model”, 字段:['id','name'] };Extjs4 为JSON对象创建复选框,extjs4,Extjs4,我正在使用extjs4,我需要根据我的JSON对象添加复选框组 JSON ExtJs Ext.define“providerList”{ 扩展:“Ext.data.Model”, 字段:['id','name'] }; var provider = Ext.create('Ext.data.Store', { model: 'providerList', autoLoad: true,
var provider = Ext.create('Ext.data.Store', {
model: 'providerList',
autoLoad: true,
proxy: {
type: 'ajax',
url : url+'/lochweb/loch/clinicalProvider/getAll',
reader: {
type: 'json',
root: 'Provider'
}
}
});
面板
表单中没有复选框。如何从JSON存储区填充复选框在将其用作复选框的子项之前,可以定义items数组。items数组的每个元素都是基于存储的每个记录创建的
var items = [];
provider.each(function(record) { items.push({boxLabel: 'up-to-you', name: 'up-to-you'}) }, );
var checkboxes = new Ext.form.CheckboxGroup({
fieldLabel:'Providers',
columns:2,
items:items
});
在这里,您可以确定每个复选框的boxLabel和名称。记录的属性可以用作前缀、后缀…一些提示:
在面板项的定义中,删除复选框周围的{},如下所示:
items: [ checkboxes ]
panel.add(new Ext.form.CheckboxGroup({
columns: 1,
vertical: true,
items: checkItems
}));
panel.doLayout();
其次,确保在填充复选框时商店可用
我在我的应用程序中也有类似的情况,在面板渲染后,商店可用。面板中动态填充以下复选框列表:
items: [ checkboxes ]
panel.add(new Ext.form.CheckboxGroup({
columns: 1,
vertical: true,
items: checkItems
}));
panel.doLayout();
编辑:另一个提示:
从此代码中删除qutoes:
{
boxLabel: 'record.id',
name: 'record.name'
}
或者,您将得到所有标签“record.id”您好,谢谢您的评论,我按照您的建议做了,但没有成功。代码如下,var items=[];provider.eachfunctionrecord{items.push{boxLabel:'record.data.id',name:'record.data.name'};在pusing box label和name之后,items数组仍然为空。因此表单中没有复选框。我没有要查询的url,因此我尝试向存储添加一条记录,但效果良好。你能再检查一下Ajax商店吗?创建后是否有数据?是的,数据存储区中填充了JSON对象,但复选框的创建并不奇怪。如果存储区有数据,它就会工作。在我看来,也许您将存储配置为使用Ajax查询数据,但实际上它并没有成功地获取数据?顺便说一下,返回的JSON的格式应该是{Provider:[{id:3,name:Beta House,npi:0,taxId:0,address:{state:{id:1,stateName:Alabama,code:AL},zipcode:0,country:USA,email:beta@gmail.com},type:CP,LabProvider:[],ListOfProvider:[]}}我已经用上面提到的更改运行了代码,它适用于静态存储。您确定在调用“each”时已填充存储区吗?在调用“checkboxconfigs.push”时,请尝试使用console.log查找每条记录,并检查记录是否正常。