jqGrid-colNames和<> colModel的长度!错误

时间:2019-03-18 13:31:14

标签: javascript jquery ajax spring-mvc jqgrid

当我在下面使用此代码时,我得到“ colNames和<> colModel的长度!”错误。如果isUserGlobal为false,则不会出现任何错误。我正在使用jqGrid-4.5.4

receivedColModel.push({name:'NAME', index:'NAME', sortable:true});
receivedColModel.push({name:'SURNAME', index:'SURNAME', sortable:true});
receivedColModel.push({name:'AGE', index:'AGE', sortable:true});
receivedColModel.push({name:'STATUS', index:'STATUS', sortable:true});

receivedColNames.push(messageDictionary['userHistory.NAME']);
receivedColNames.push(messageDictionary['userHistory.SURNAME']);
receivedColNames.push(messageDictionary['userHistory.AGE']);
receivedColNames.push(messageDictionary['userHistory.STATUS']);

if(isUserGlobal == 'true') {
    receivedColModel.push({name:'CITY', index:'CITY', sortable:true});
    receivedColNames.push(messageDictionary['userHistory.CITY']);
}

$('#historyGrid').jqGrid({
     url:'ajax.htm',
     datatype: "json",
     mtype: "POST",
     jsonReader: { repeatitems : false, cell:"", id: "", userdata: "jsonModel", root: "rows" },
     postData:postData,
     colNames:receivedColNames,
     colModel:receivedColModel,
     .
     .
     .

顺便说一句,如果我不使用colNames作为如下所示的参数,则程序可以成功运行。我不明白,为什么会发生这种情况。非常感谢。

receivedColModel.push({name:'NAME', index:'NAME', sortable:true, label:messageDictionary['userHistory.NAME']});
receivedColModel.push({name:'SURNAME', index:'SURNAME', sortable:true, label:messageDictionary['userHistory.SURNAME']});
receivedColModel.push({name:'AGE', index:'AGE', sortable:true, label:messageDictionary['userHistory.AGE'});
receivedColModel.push({name:'STATUS', index:'STATUS', sortable:true, label:messageDictionary['userHistory.STATUS']});

if(isUserGlobal == 'true') {
    receivedColModel.push({name:'CITY', index:'CITY', sortable:true});
}

$('#historyGrid').jqGrid({
    url:'ajax.htm',
    datatype: "json",
    mtype: "POST",
    jsonReader: { repeatitems : false, cell:"", id: "", userdata: "jsonModel", root: "rows" },
    postData:postData,
    colModel:receivedColModel,
    .
    .
    .

1 个答案:

答案 0 :(得分:1)

您没有包括jqGrid的真实参数。很明显,您使用receivedColModelreceivedColNames来构建colNames和colModel`。我想您的问题的根源在于这一部分(在我们的问题文本中没有看到这一部分)。

您完全不能使用colNames。取而代之的是,您可以根据label的{​​{1}}属性来指定列标题。您将没有任何缺点。顺便说一下,如果colModel属性的值与index属性的值相同,则不需要该属性。 name属性的默认值为sortable,您也可以删除true