2016-11-17 42 views
0

控制器代碼:jqGrid的V4 - 動態列不工作

public JsonResult GetGridColumn() 
{ 
    var jsonData = new 
    { 
     colNames = "['actname']", 
     colModel = "[{ name: 'actionTaken'}]", 
     }; 
     return Json(jsonData, JsonRequestBehavior.AllowGet); 
    } 
    } 

查看代碼:

$(document).ready(function() { 
    $.ajax({ 
     type: "POST", 
     url: "/GetForm/GetGridColumn", 
     data: "", 
     datatype: "json", 
     success: function (data) { 
      colN = data.colNames; 
      colM = data.colModel; 
      $("#taskGrid").jqGrid({ 
       url: "someurl", 
       datatype: 'jsonstring', 
       mtype: 'POST', 
       colNames: colN, 
       colModel: colM, 
       pager: jQuery('#pager'), 
       rowNum: 10, 
       rowList: [10, 20, 30, 40], 
       height: '100%', 
       viewrecords: true, 
       width: 1250, 
       jsonReader: { 
        cell: "", 
        id: "0" 
       } 
      }) 
     } 
    }); 
}); 

我得到科隆爲[ 'actname']和科爾姆爲[{名稱: 'actionTaken'} ]。當我運行上面的腳本時,我得到這個錯誤colName的長度<> colModel!

+0

嘗試類似'var jsonData = new {colNames = new [] {「actname」},colModel = new [] {new {name =「actionTaken」}}};'以任何方式'jsonData.colNames'和'jsonData.colModel'應該是**數組**而不是字符串。 jqGrid驗證兩個數組的元素數量相同,但是使用'colNames'和'colModel'作爲字符串,並且測試'if(p.colNames.length!== p.colModel.length){'在你的情況下的字符串。這是錯誤信息誤解的原因。 – Oleg

+0

非常感謝Oleg。我改變了我的jasonData如上所述,它的工作! – priya

+0

不客氣!我發佈了與答案相同的信息。 – Oleg

回答

0

嘗試像

var jsonData = new { 
     colNames = new [] {"actname"}, 
     colModel = new [] { new { name = "actionTaken" } } 
    }; 

以任何方式jsonData.colNamesjsonData.colModel應該是數組和字符串不是。 jqGrid驗證這兩個數組的元素數量是否相同,但是您使用colNamescolModel作爲字符串,並且測試if (p.colNames.length !== p.colModel.length) {比較了您的案例中字符串的長度。這是錯誤信息誤解的原因。