Extjs 动态改变列名

  1. 列名与对应的值是动态改变的,也就是说要展示的列名可能随时改变。
    首先选择了默认的列作为显示,在tbar中加入一个按钮弹出所有可能要显示的列名,选择后将对应的列名与值显示在grid中,例如

    身份证号码        男性       青年    中年       商人
    3424××          是          否      是         是
    1234××          否           是      否        否

    Js代码 复制代码
    1. function createRecordValue(){   //动态生成recordValue   
    2.         var tempValue = new Array();   
    3.         var j = 0;   
    4.         tempValue[j] = {name:'UserId'};   
    5.         for(var i = 0 ;i < amdValue.length;i++){   
    6.             tempValue[++j] = {name: "N"+amdValue[i]}; //列名   
    7.             tempValue[++j] = {name: "V"+amdValue[i]};//列名对应的值   
    8.         }   
    9.         return tempValue;          
    10. }   
    11.        
    12.     function createColumn(){//动态生成列名,amdValue为要显示的列的数组   
    13.         var tempColumn = new Array();   
    14.         var j = 0;   
    15.         tempColumn[j] = {header:'身份证号',dataIndex:'UserId',sortable:true,renderer:getUserInfo};   
    16.         for(var i = 0;i < amdValue.length;i++){   
    17.             tempColumn[++j] = {header:"N"+amdValue[i],dataIndex:"V"+amdValue[i],id:"V"+amdValue[i],sortable:true};   
    18.         }   
    19.         return tempColumn;   
    20.     }   
    21.   
    22. //动态设置列名   
    23. var index = cm.getIndexById("V"+amdValue[i]);   
    24.                         var str = r[0].get("N"+amdValue[i]);//r[]后台返回的记录集;amdValue[i]是要显示的列的关键字   
    25.                         cm.setColumnHeader(index,str);   
    26.   
    27. //刷新CM,STORE   
    28. grid.reconfigure(store, cm);  

posted @ 2011-01-03 10:39  hannover  阅读(4648)  评论(0编辑  收藏  举报