extjs JSONStore的load事件/insert,add方法应用 如何动态改变显示数据

前端之家收集整理的这篇文章主要介绍了extjs JSONStore的load事件/insert,add方法应用 如何动态改变显示数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1.场景/功能描述
1.1产品分类管理(增加修改删除查询
1.2产品查询界面,查询下拉条件有:产品分类

2.分析
业务数据存储在数据库。界面显示时请求web服务器,再而从数据库中读取数据。
相同:场景中1.1查询所有产品分类与1.2加载所有产品分类作为条件,这两部分的数据集一样
不同:场景1.2的数据集需要多一项,“全部”,即用户可选“全部”项,查询所有分类的产品
3.实现
只描述关键代码

方法1:
前台
Ext.Ajax.request({
extraParams:{'from':'1.1'}//from表示界面源,1.1表示场景1.1
});

后台

IList<ProductCate> listCate = db.getList("select cateid,catename from tbProductCate ");//读取数据

string _from = Request.From["from"].ToString();
if( _from == "1.2")
{
listCate.insert(0,new ProductCate("-1","全部"));
}

Respone.Write(listCate.toJSON());
Respone.End();

方法2:
在场景1.2部分js代码中,在 productCateJsonStore增加load事件的监听。
var productCateJsonStore = new Ext.data.JSONStore(
...//其他配置简略
listeners : {
load : function()
{
this.insert(0,{cateid:-1,catename:'全部'});
//this.add({cateid:-1,catename:'全部'});是加载到最后面
}
}
);

方法3:
在场景1.2中将下拉框单选改为列表多选。

对比分析:
方法1:比较土,修改代码量少,扩展性中等。
方法2:实现当前需求最简单做法。
方法3:修改代码量大,但用户体验好。

4.扩展

在JSONStore的load事件里,可get某一条数据,然后修改某一项的值,或者remove


转自:http://blog.csdn.net/dafeng168/article/details/6650918

猜你在找的Json相关文章