Javascript 动态复选框、单选、复选框组、射线组extjs
嗨,亲爱的朋友们 我在stackowerflow中搜索了这个问题,但没有一个对我有帮助Javascript 动态复选框、单选、复选框组、射线组extjs,javascript,extjs,Javascript,Extjs,嗨,亲爱的朋友们 我在stackowerflow中搜索了这个问题,但没有一个对我有帮助 my model is like that: Ext.define('soru', { extend : 'Ext.data.Model', fields : [{ name : 'CEVAP', type : 'string' }, {
my model is like that:
Ext.define('soru', {
extend : 'Ext.data.Model',
fields : [{
name : 'CEVAP',
type : 'string'
},
{
name : 'VALUE',
type : 'int'
},
{
name : 'RECNO',
type : 'int'
}
]
});
我的商店就像:
checkboxArray = [];
var myStoresoru = Ext.create('Ext.data.Store', {
model : 'soru',
id:'sorustore',
proxy : {
type : 'ajax',
url : 'fetchsoru.php',
reader : {
type : 'json',
root : 'data'
}
},
listeners: {
load: function(value, records, options) {
for(var i = 0; i < records.length; i++) {
console.log(records);
console.log(records.length);
checkboxArray.push(new Ext.form.Checkbox(
{
boxLabel: value.data.items[i].data.CEVAP,
name: value.data.keys[i],
xtype: 'checkbox',
inputValue: value.data.items[i].data.VALUE,
id: value.data.items[i].data.RECNO
}));
//{id: records[i].data.id, boxLabel: records[i].data.pagetitle});
}
}
},
autoLoad : false
});
myStoresoru.load();
}))
及表格:
form = Ext.create('Ext.form.Panel', { items : [check]
});
我的问题是,复选框没有加载到checkboxgroup中。当我在控制台上键入checckboxArray时,我可以看到checckboxArray存在,但我不知道为什么不显示checckboxes问题是,将checkboxArray添加到checkboxGroup时,数组为空。当加载存储的ajax请求完成且数组已填充时,checkboxGroup中的项目不会更新 解决方案是在填充checkboxArray后将其添加到checkboxGroup:
...
load: function(value, records, options) {
for(var i = 0; i < records.length; i++) {
console.log(records);
console.log(records.length);
checkboxArray.push(new Ext.form.Checkbox(
{
boxLabel: value.data.items[i].data.CEVAP,
name: value.data.keys[i],
xtype: 'checkbox',
inputValue: value.data.items[i].data.VALUE,
id: value.data.items[i].data.RECNO
}));
check.add(checkboxArray);
//{id: records[i].data.id, boxLabel: records[i].data.pagetitle});
}
因为它本身已经是一个数组了。不过,这句话已经不需要了。谢谢你重播我。我已经解决了,我想分享我的解决方案,以帮助在extjs中搜索动态复选框和chexbox组的人 在我的商店里,我写了我的checkboxgroup和radiogroup
var myStoresoru = Ext.create('Ext.data.Store', {
model : 'soru',
id:'sorustore',
proxy : {
type : 'ajax',
url : 'fetchsoru.php',
reader : {
type : 'json',
root : 'data'
}
},
listeners: {
load: function(value, records, options) {
for(var i = 0; i < records.length; i++) {
//console.log(records);
//console.log(records.length);
if(value.data.items[i].data.GROUPID==0)
{
checkboxGroupArray.push(new Ext.form.CheckboxGroup(
{
fieldLabel: value.data.items[i].data.SORU,
labelWidth:300,
border: '10 5 3 10',
bodyPadding: 10,
columns:2,
id: value.data.items[i].data.RECNOSORU,
xtype: 'checkboxgroup',
originalValue:value.data.items[i].data.SORUTIPI
//layout:
}));
}
else
{
radioGroupArray.push(new Ext.form.RadioGroup(
{
fieldLabel: value.data.items[i].data.SORU,
border: '10 5 3 10',
bodyPadding: 10,
labelWidth:300,
columns:2,
id: value.data.items[i].data.RECNOSORU,
xtype: 'radiogroup',
originalValue:value.data.items[i].data.SORUTIPI
}));
}
} }
},
autoLoad : false
});
var myStoresoru=Ext.create('Ext.data.Store'{
型号:“soru”,
id:'sorustore',
代理:{
键入:“ajax”,
url:'fetchsoru.php',
读者:{
键入:“json”,
root:“数据”
}
},
听众:{
加载:函数(值、记录、选项){
对于(var i=0;i
并在将支票盒和无线电波场加载到GROUP项目中后将其加载到表格中
var myStorecevap = Ext.create('Ext.data.Store', {
model : 'cevap',
id:'cevapstore',
proxy : {
type : 'ajax',
url : 'fetchcevap.php',
reader : {
type : 'json',
root : 'data'
}
},
listeners: {
load: function(value, records, options) {
for(var i = 0; i < records.length; i++) {
//console.log(records);
//console.log(records.length);
if(value.data.items[i].data.GROUPID==0)
{
checkboxArray.push(new Ext.form.Checkbox(
{
boxLabel: value.data.items[i].data.CEVAP,
name: value.data.keys[i],
xtype: 'checkbox',
labelWidth:300,
columns:2,
inputValue: value.data.items[i].data.VALUE,
id: value.data.items[i].data.RECNO,
stateId:value.data.items[i].data.SORUTIPI
}));
}
else
{
radioArray.push(new Ext.form.Radio(
{
boxLabel: value.data.items[i].data.CEVAP,
name: value.data.items[i].data.RECNOSORU,
xtype: 'radiofield',
labelWidth:300,
columns:2,
inputValue: value.data.items[i].data.VALUE,
// id: value.data.items[i].data.RECNOS,
// stateId:value.data.items[i].data.SORUTIPI
}));
}
//console.log(checkboxGroupArray);
}
//var totalcount=checkboxArray.length+radioGroupArray.length;
for(var i = 0; i < checkboxArray.length; i++)
{
for(var j = 0; j < checkboxGroupArray.length; j++)
{
console.log(value.data.items[i].data.RECNOSORU);
var den=value.data.items[i].data.RECNOSORU;
if(checkboxGroupArray[j].id==den)
{
checkboxGroupArray[j].add(checkboxArray[i]);
console.log(checkboxGroupArray);
}
}
}
Ext.getCmp('forms').add(checkboxGroupArray);
for(var k = 0; k < radioArray.length; k++)
{
for(var m = 0; m < radioGroupArray.length; m++)
{
//console.log(value.data.items[k].data.RECNOSORU);
var denm=radioArray[k].name;
console.log(radioArray[k].name);
//console.log(radioGroupArray[m].id);
if(radioGroupArray[m].id==denm)
{
radioGroupArray[m].add(radioArray[k]);
console.log(radioGroupArray[m]);
}
}
}
Ext.getCmp('forms').add(radioGroupArray);
arraytext.push(new Ext.form.TextArea(
{
xtype : 'textareafield',
grow : true,
labelWidth:300,
autoScroll : true,
name : 'message',
id: 'message',
fieldLabel: 'İlave Görüş ve Notlarınız',
anchor : '100%'
}));
Ext.getCmp('forms').add(arraytext);
}
},
autoLoad : false
});
var myStorecevap=Ext.create('Ext.data.Store'{
型号:“cevap”,
id:'cevapstore',
代理:{
键入:“ajax”,
url:'fetchecvap.php',
读者:{
键入:“json”,
root:“数据”
}
},
听众:{
加载:函数(值、记录、选项){
对于(var i=0;ivar myStoresoru = Ext.create('Ext.data.Store', {
model : 'soru',
id:'sorustore',
proxy : {
type : 'ajax',
url : 'fetchsoru.php',
reader : {
type : 'json',
root : 'data'
}
},
listeners: {
load: function(value, records, options) {
for(var i = 0; i < records.length; i++) {
//console.log(records);
//console.log(records.length);
if(value.data.items[i].data.GROUPID==0)
{
checkboxGroupArray.push(new Ext.form.CheckboxGroup(
{
fieldLabel: value.data.items[i].data.SORU,
labelWidth:300,
border: '10 5 3 10',
bodyPadding: 10,
columns:2,
id: value.data.items[i].data.RECNOSORU,
xtype: 'checkboxgroup',
originalValue:value.data.items[i].data.SORUTIPI
//layout:
}));
}
else
{
radioGroupArray.push(new Ext.form.RadioGroup(
{
fieldLabel: value.data.items[i].data.SORU,
border: '10 5 3 10',
bodyPadding: 10,
labelWidth:300,
columns:2,
id: value.data.items[i].data.RECNOSORU,
xtype: 'radiogroup',
originalValue:value.data.items[i].data.SORUTIPI
}));
}
} }
},
autoLoad : false
});
var myStorecevap = Ext.create('Ext.data.Store', {
model : 'cevap',
id:'cevapstore',
proxy : {
type : 'ajax',
url : 'fetchcevap.php',
reader : {
type : 'json',
root : 'data'
}
},
listeners: {
load: function(value, records, options) {
for(var i = 0; i < records.length; i++) {
//console.log(records);
//console.log(records.length);
if(value.data.items[i].data.GROUPID==0)
{
checkboxArray.push(new Ext.form.Checkbox(
{
boxLabel: value.data.items[i].data.CEVAP,
name: value.data.keys[i],
xtype: 'checkbox',
labelWidth:300,
columns:2,
inputValue: value.data.items[i].data.VALUE,
id: value.data.items[i].data.RECNO,
stateId:value.data.items[i].data.SORUTIPI
}));
}
else
{
radioArray.push(new Ext.form.Radio(
{
boxLabel: value.data.items[i].data.CEVAP,
name: value.data.items[i].data.RECNOSORU,
xtype: 'radiofield',
labelWidth:300,
columns:2,
inputValue: value.data.items[i].data.VALUE,
// id: value.data.items[i].data.RECNOS,
// stateId:value.data.items[i].data.SORUTIPI
}));
}
//console.log(checkboxGroupArray);
}
//var totalcount=checkboxArray.length+radioGroupArray.length;
for(var i = 0; i < checkboxArray.length; i++)
{
for(var j = 0; j < checkboxGroupArray.length; j++)
{
console.log(value.data.items[i].data.RECNOSORU);
var den=value.data.items[i].data.RECNOSORU;
if(checkboxGroupArray[j].id==den)
{
checkboxGroupArray[j].add(checkboxArray[i]);
console.log(checkboxGroupArray);
}
}
}
Ext.getCmp('forms').add(checkboxGroupArray);
for(var k = 0; k < radioArray.length; k++)
{
for(var m = 0; m < radioGroupArray.length; m++)
{
//console.log(value.data.items[k].data.RECNOSORU);
var denm=radioArray[k].name;
console.log(radioArray[k].name);
//console.log(radioGroupArray[m].id);
if(radioGroupArray[m].id==denm)
{
radioGroupArray[m].add(radioArray[k]);
console.log(radioGroupArray[m]);
}
}
}
Ext.getCmp('forms').add(radioGroupArray);
arraytext.push(new Ext.form.TextArea(
{
xtype : 'textareafield',
grow : true,
labelWidth:300,
autoScroll : true,
name : 'message',
id: 'message',
fieldLabel: 'İlave Görüş ve Notlarınız',
anchor : '100%'
}));
Ext.getCmp('forms').add(arraytext);
}
},
autoLoad : false
});