• EXTJS之Store


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

    1,用在gridPanel中常使用SimpleStore
    Js代码  收藏代码
    1. var store_stat = new Ext.data.SimpleStore({   
    2.             fields:[  
    3.             {name:'date',mapping:'date'}  
    4.             ,{name:'model',mapping:'model'}  
    5.             ,{name:'per',mapping:'per'}  
    6.             ]  
    7.         });  


    2,填充表单中的下拉菜单(combo),常用JsonStore。
    (1)简单JsonStore
    Js代码  收藏代码
    1. var data=[{'id':1,'name':'小王','sex':'男'},  
    2.               {'id':2,'name':'小李','sex':'男'},  
    3.               {'id':3,'name':'小兰','sex':'女'},  
    4.               ];  
    5.       
    6.     var store = new Ext.data.JsonStore({  
    7.             data:data,  
    8.             fields:['id','name','sex']  
    9.         });  


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


    (2)通过url获取数据
    例如,
    Js代码  收藏代码
    1. var store_modellist2 = new Ext.data.JsonStore({  
    2.         fields:['model'],  
    3.         url:'api/fail.php',  
    4.         root:'data',  
    5.         baseParams:{action:'get_all_models'}  
    6.     });  
    7.     store_modellist2.load();  
    8.   
    9. var combo_model2 = new Ext.form.ComboBox({  
    10.             100,  
    11.             editable:false,  
    12.             triggerAction:'all',  
    13.             allowBlank:false,  
    14.             store:store_modellist2,  
    15.             displayField:'model',  
    16.             value:"\u8BF7\u9009\u62E9\u673A\u578B",  
    17.             allQuery:""//开启此项后,选择机型时将不再在此获取机型数据  
    18.             listeners:{  
    19.             'select' : function(obj, data, index){  
    20.                     var modelName = obj.getValue();  
    21.                     if(modelName !== "\u8BF7\u9009\u62E9\u673A\u578B"){  
    22.                         refresh_fail_chart(modelName);  
    23.                     }  
    24.                 }  
    25.             }  
    26.             //,mode:'local'  
    27.         });  


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

    (3)高级用法对比
    Js代码  收藏代码
    1. //用法一  
    2. var jsonStore = new Ext.data.JsonStore({  
    3.     url: 'api/fail_parts_bydepart.php',  
    4.     listeners:{  
    5.        'loadexception' : function(e){  
    6.         alert(e.toString());  
    7.         }  
    8.     },  
    9.     fields: [  
    10.     {name: 'name'},  
    11.     {name: 'flash'},  
    12.     {name: 'percent'}  
    13.           
    14.     ]  
    15. });  
    16.   
    17.   
    18. jsonStore.load({  
    19.     params:{  
    20.         'level' : level,  
    21.         'department' : paras.department,  
    22.         'product': paras.product,  
    23.         'target': is_one,  
    24.         'suit':paras.suit,  
    25.         'model':paras.model,  
    26.         'part':paras.part,  
    27.         'dateStr':dateStr  
    28.     }  
    29. });  
    30.   
    31. //用法二  
    32. var store = {  
    33.     'department' : new Ext.data.JsonStore({  
    34.         url: 'api/list_k.php?action=department',  
    35.         fields: ['name']}),   
    36.     'product' : new Ext.data.JsonStore({  
    37.         url: 'api/list_k.php?action=product',  
    38.         fields: ['name']})  
    39. };  
    40.   
    41. store.product.baseParams = {'department' : encodeURIComponent(data.data.name)};  
    42. store.product.load();  
    43.   
    44.   
    45. detailStore.on('beforeload'function() {  
    46.   detailStore.baseParams = {  
    47.     
    48.   };  
    49. });  


    JS中encodeURIComponent函数用php解码
    在JS中使用了encodeURIComponent对中文进行编码在PHP中使用iconv('UTF-8','gb2312',$q);就可以得到你需要的字串了
  • 相关阅读:
    《JAVA高并发编程详解》-Thread start方法的源码
    《JAVA高并发编程详解》-Thread对象的启动
    作为程序员,我建议你学会写作
    【灵异短篇】这个夜晚有点凉
    JAVA中for与while关于内存的细节问题
    通过本质看现象:关于Integer受内部初始化赋值范围限制而出现的有趣现象
    【设计模式】抽象工厂模式
    【设计模式】工厂模式
    【设计模式】单例模式
    【设计模式】基本介绍
  • 原文地址:https://www.cnblogs.com/holyes/p/7d2dcf1221e33707db5eef8498563359.html
Copyright © 2020-2023  润新知