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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章