EXTJs 动态添加列,不能在浏览器正常显示

EXTJs 动态添加列,后台读取数据,在浏览器debugger里可以正常显示新增的列,但离开debugger却不显示,为什么?以下是代码

var sm=new Ext.grid.CheckboxSelectionModel();
var cmConfig;
var cmItems=[new Ext.grid.RowNumberer(),sm,{
header : "",
dataIndex : "userId",
width : 65,
hidden : true,
}, {
header : "人员姓名",
dataIndex : "fullname",
width : 65,
sortable: true
} ];

    var results=[]; // 动态列部分以及取值
    Ext.Ajax.request({
        url : __ctxPath + "/hrm/listColSalaryPayoff.do",
        method : "post",
        params : {
            standardId : a
        },
        scope : this,
        success : function(b) {
            results = Ext.util.JSON.decode(b.responseText).result;
        }
    });

    debugger;
    for ( var i = 0; i < results.length; i++) {
        cmConfig = {
            header : results[i].itemName,
            value : results[i].amount,
            sortable : true,
            editor :new Ext.form.NumberField(),
        };
        cmItems.push(cmConfig);
    }

    var store = this.gridPanel.store;
    this.gridPanel.reconfigure(store, new Ext.grid.ColumnModel(cmItems));

2个回答

reconfigure放回调里面,否则ajax是异步的,执行reconfigure的时候还没有回调。你加了debugger调试给了ajax返回时间设置results变量,所以调试模式看到有数据,不调试无数据的情况

     var results=[]; // 动态列部分以及取值
    Ext.Ajax.request({
        url : __ctxPath + "/hrm/listColSalaryPayoff.do",
        method : "post",
        params : {
            standardId : a
        },
        scope : this,
        success : function(b) {
            results = Ext.util.JSON.decode(b.responseText).result;
                        //////////////////////////////////////////////

    for ( var i = 0; i < results.length; i++) {
        cmConfig = {
            header : results[i].itemName,
            value : results[i].amount,
            sortable : true,
            editor :new Ext.form.NumberField(),
        };
        cmItems.push(cmConfig);
    }

    var store = this.gridPanel.store;
    this.gridPanel.reconfigure(store, new Ext.grid.ColumnModel(cmItems));
        /////////////////////////////////////









        }
    });

已解决,非常感谢。。

showbo
支付宝加好友偷能量挖 那就采纳了。。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!