ExtJS之Store

据目前所知:Store至少分为两类,一个是SimpleStore,另一个是JsonStore。

1,用在gridPanel中常使用SimpleStore

var store_stat = new Ext.data.SimpleStore({
fields:[
{name:'date',mapping:'date'}
,{name:'model',mapping:'model'}
,{name:'per',mapping:'per'}
]
});


2,填充表单中的下拉菜单(combo),常用JsonStore。
(1)简单JsonStore

var data=[{'id':1,'name':'小王','sex':'男'},
{'id':2,'name':'小李','sex':'男'},
{'id':3,'name':'小兰','sex':'女'},
];

var store = new Ext.data.JsonStore({
data:data,
fields:['id','name','sex']
});


批注:当时静态数据时,fields可以是['id','name','sex'],
如果是通过url动态获取数据是,必须是fields:[{name:'id'},{name:'suit'},{name:'type'}]


(2)通过url获取数据
例如,

var store_modellist2 = new Ext.data.JsonStore({
fields:['model'],
url:'api/fail.php',
root:'data',
baseParams:{action:'get_all_models'}
});
store_modellist2.load();

var combo_model2 = new Ext.form.ComboBox({
width:100,
editable:false,
triggerAction:'all',
allowBlank:false,
store:store_modellist2,
displayField:'model',
value:"\u8BF7\u9009\u62E9\u673A\u578B",
allQuery:"", //开启此项后,选择机型时将不再在此获取机型数据
listeners:{
'select' : function(obj, data, index){
var modelName = obj.getValue();
if(modelName !== "\u8BF7\u9009\u62E9\u673A\u578B"){
refresh_fail_chart(modelName);
}
}
}
//,mode:'local'
});


注:先后顺序不能颠倒。先JsonStore,后ComboBox。

(3)高级用法对比

//用法一
var jsonStore = new Ext.data.JsonStore({
url: 'api/fail_parts_bydepart.php',
listeners:{
'loadexception' : function(e){
alert(e.toString());
}
},
fields: [
{name: 'name'},
{name: 'flash'},
{name: 'percent'}

]
});


jsonStore.load({
params:{
'level' : level,
'department' : paras.department,
'product': paras.product,
'target': is_one,
'suit':paras.suit,
'model':paras.model,
'part':paras.part,
'dateStr':dateStr
}
});

//用法二
var store = {
'department' : new Ext.data.JsonStore({
url: 'api/list_k.php?action=department',
fields: ['name']}),
'product' : new Ext.data.JsonStore({
url: 'api/list_k.php?action=product',
fields: ['name']})
};

store.product.baseParams = {'department' : encodeURIComponent(data.data.name)};
store.product.load();


detailStore.on('beforeload', function() {
detailStore.baseParams = {

};
});


JS中encodeURIComponent函数用php解码
在JS中使用了encodeURIComponent对中文进行编码在PHP中使用iconv('UTF-8','gb2312',$q);就可以得到你需要的字串了

如果您觉得本文的内容对您的学习有所帮助,您可以微信:
[img]http://dl2.iteye.com/upload/attachment/0109/0668/fb266dfa-95ca-3d09-b41e-5f04a19ba9a1.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值