pal2003 2016-08-12 07:16 采纳率: 0%
浏览 1221

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条回答

  • Go 旅城通票 2016-08-12 07:32
    关注

    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));
            /////////////////////////////////////
    
    
    
    
    
    
    
    
    
            }
        });
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料