Ext.form.DynamicCheckboxGroup=Ext.extend(Ext.form.CheckboxGroup,{
/**
* 显示列数
*/
columns:3,
/**
* json数据地址
*/
url:'',
fields:[],
root:'',
labelFiled:'label',
valueFiled:'value',
onRender:function(ct, position){
alert(this.url);
var items=[];
if(!this.items){
var json=new Ext.data.JsonStore({
autoDestroy: true,
proxy:new Ext.data.HttpProxy({
url:this.url,
method: 'GET'
}),
root:this.root,
fields:this.fields
});
var ss = json.load({
params: {start:0,limit:20},
callback: function(records, options, success){
Ext.Msg.alert('info', '加载完毕');
alert(json.getTotalCount());
},
scope: json,
add: true
});
for(var i=0;i <json.getTotalCount();i++){
var d=json.getAt(i);
var check = {boxLabel: d.get(this.fields[1]), name: this.name||'mae', inputValue: d.get(this.fields[0])};
items.push(check);
}
this.items=items;
}
Ext.form.DynamicCheckboxGroup.superclass.onRender.call(this, ct, position);
}
});
Ext.reg('dynamicCheckboxGroup',Ext.form.DynamicCheckboxGroup);
代码如上,在执行json.load 的同时代码 继续往下走了导致 for(var i=0;i <json.getTotalCount();i++){ 时 json 数据还没有加载 ,也就是说json的数据是异步加载的,怎么样能叫数据同步加载?或者 再异步加载的时候把数据放在CheckGroup中去?
/**
* 显示列数
*/
columns:3,
/**
* json数据地址
*/
url:'',
fields:[],
root:'',
labelFiled:'label',
valueFiled:'value',
onRender:function(ct, position){
alert(this.url);
var items=[];
if(!this.items){
var json=new Ext.data.JsonStore({
autoDestroy: true,
proxy:new Ext.data.HttpProxy({
url:this.url,
method: 'GET'
}),
root:this.root,
fields:this.fields
});
var ss = json.load({
params: {start:0,limit:20},
callback: function(records, options, success){
Ext.Msg.alert('info', '加载完毕');
alert(json.getTotalCount());
},
scope: json,
add: true
});
for(var i=0;i <json.getTotalCount();i++){
var d=json.getAt(i);
var check = {boxLabel: d.get(this.fields[1]), name: this.name||'mae', inputValue: d.get(this.fields[0])};
items.push(check);
}
this.items=items;
}
Ext.form.DynamicCheckboxGroup.superclass.onRender.call(this, ct, position);
}
});
Ext.reg('dynamicCheckboxGroup',Ext.form.DynamicCheckboxGroup);
代码如上,在执行json.load 的同时代码 继续往下走了导致 for(var i=0;i <json.getTotalCount();i++){ 时 json 数据还没有加载 ,也就是说json的数据是异步加载的,怎么样能叫数据同步加载?或者 再异步加载的时候把数据放在CheckGroup中去?