我使用的是extjs4,我需要根据我的JSON对象添加复选框组,
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":[]}]}
ExtJs的 Ext.define('providerList',{ extend:'Ext.data.Model', 字段:['id','name'] });
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'
}
}
});
面板
var checkboxconfigs = [];
provider.each(function(record) {
checkboxconfigs.push(
{
boxLabel: 'record.id',
name: 'record.name'
})
});
var checkboxes = new Ext.form.CheckboxGroup({
fieldLabel:'Providers',
columns:2,
items:checkboxconfigs
});
var patientProvider = new Ext.FormPanel({
renderTo: "patientProvider",
frame: true,
title: 'Association',
bodyStyle: 'padding:5px',
width: 500,
items: [{
checkboxes
}],
});
表单中没有复选框。如何从JSON商店填充复选框
答案 0 :(得分:0)
您可以在将items
数组用作checkboxes
的子项之前定义它。 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
和name
(record
的属性可以用作前缀,后缀......)
答案 1 :(得分:0)
一些提示:
在面板项的定义中,删除{}周围的复选框,如下所示:
items: [ checkboxes ]
第二,确保在填充复选框时商店可用。
我的应用程序中有类似的情况,在呈现面板后商店可用。 Panel是动态填充的复选框列表,如下所示:
panel.add(new Ext.form.CheckboxGroup({
columns: 1,
vertical: true,
items: checkItems
}));
panel.doLayout();
编辑:另一个提示:
从此代码中移除qutoes'':
{
boxLabel: 'record.id',
name: 'record.name'
}
或者你最终会得到所有标签'record.id'