如何在没有数据加载到jqGrid时将groupColumnShow设置为false?

时间:2012-09-21 19:37:18

标签: jquery jqgrid

我有一个网格,它初始化时没有数据,但在用户交互后加载了数据。我的网格还使用“分组”功能,以便:

ordersGrid.jqGrid({
    url: '',
    mtype: '',
    datatype: 'local',
    colNames: ['Order', 'Task #', 'Type', 'Status', 'Assignee', 'Current Location',
        'Dest Location', 'Change No', 'Net Patched', 'SAN Patched', 'Select'],
    colModel: [
        { name: 'Order', index: 'Order ID'},
        { name: 'Task #', index: 'Task #'},
        { name: 'Type', index: 'Type'},
        { name: 'Status', index: 'Status'},
        { name: 'Assignee', index: 'Assignee'},
        { name: 'Current Location', index: 'Current Location'},
        { name: 'Dest Location', index: 'Dest Location'},
        { name: 'Change No', index: 'Change No'},
        { name: 'Net Patched', index: 'Net Patched'},
        { name: 'SAN Patched', index: 'SAN Patched'},
        { name: 'Select', index: 'Select', width:'75px', classes: "SelectColumn",
            editable: true, edittype:'checkbox', editoptions: {value:"True:False"},
            formatter:"checkbox", formatoptions: {disabled: false}}
    ],
    gridview: true,
    height: 'auto',
    pager: ordersGridPager,
    viewrecords: true,
    grouping: false, //Set to true once data is loaded.
    groupingView: {
        groupField: ['Order'],
        groupColumnShow: [false]
    },
    loadError: function(error) {
        console.error(error);
    }
});

如果我在网格初始化期间将属性'grouping'设置为true,我会在页面上看到以下错误:

Uncaught TypeError: Cannot read property 'stype' of undefined 

如果在将分组设置为true之前网格上有数据,则此错误不存在。如果我把分组视为假,一切都很好。

问题在于,即使没有数据,我也不想查看“订单”列。我怎样才能做到这一点?

这是一个关于这个问题的JS小提琴:http://jsfiddle.net/qrjZD/1/

1 个答案:

答案 0 :(得分:1)

产生错误的主要问题是在index列中使用Order属性,该值不等于name属性的值。如果是本地网格(datatype: 'local'),则不应该这样做。

下一个问题是您使用了包含特殊字符的name属性:空格和#。建议不要这样做,因为name属性将用于构造网格某些元素的id属性。

请在此处查看固定代码:http://jsfiddle.net/qrjZD/3/