Jqgrid 中 colNames <> colModel 错误的长度

Length of colNames <> colModel error in Jqgrid

所以我 运行 我的 web-aaplication 并得到这个错误 Length of colNames <> colModel!问题是 colName 和 colModel 的数量相同,所以我真的不明白t know what

usersandorganization.js

    var initActiveUsers = function(){
    if (!activeUsersGrid) {
        activeUsersGrid = $('#activeUsers').jqGrid({
            datatype: function(){
                commonHelper.callAjaxMethod('users.htm', 'loadActiveUsers',
                    {}, function (result) {
                        activeUsersGrid.clearGridData(true);
                        activeUsersGrid[0].addJSONData(result);
                    }, true, true, false, function(){return true;})
            },
            colNames: [
                messages['usersandorganizations.loginname'],
                messages['usersandorganizations.name'],
                messages['usersandorganizations.logindate'],
                messages['usersandorganizations.session'],
                messages['usersandorganizations.description']
            ],
            colModel: [
                {name: 'loginName', index: 'loginName', formatter: commonHelper.notNullFormatter},
                {name: 'name', index: 'name', formatter: commonHelper.notNullFormatter},
                {name: 'loginDate', index: 'loginDate', formatter: commonHelper.notNullFormatter},
                {name: 'sessionId', index: 'sessionId', formatter: commonHelper.notNullFormatter},
                {name: 'description', index: 'description', formatter: commonHelper.notNullFormatter},
            ],
            height: "100%",
            jsonReader: {repeatitems: false, id: "loginName"},
            sortname: 'loginDate',
            viewrecords: true,
            sortorder: "asc",
            rowNum: -1
        });

        updateActiveUsers();
    } else {
        activeUsersGrid.trigger("reloadGrid");
    }
};

我不确定这是否会导致问题,但在 colModel

中的最后一个元素之后不需要逗号
{name: 'description', index: 'description', formatter: commonHelper.notNullFormatter}, <==

您确定消息数组中的值没有用逗号分隔 - 这可能会导致问题

你可以 在调用网格之前创建一个临时元素并执行

var names_check =  [
    messages['usersandorganizations.loginname'],
    messages['usersandorganizations.name'],
    messages['usersandorganizations.logindate'],
    messages['usersandorganizations.session'],
    messages['usersandorganizations.description']
]

console.log(names_check.length);

您将看到名称数组的维度。

如果您不想执行此操作,您可以简单地替换 colNames 数组并在 colModel 中使用标签 属性 - 即删除 colNames 并执行:

        colModel: [
            {label: messages['usersandorganizations.loginname'], name: 'loginName', index: 'loginName', formatter: commonHelper.notNullFormatter},
            ...
        ],

希望你明白了。

我认为如果 messages 数组有问题(如上所述),您在使用最后的建议时也会出错。