2013-01-15 86 views
0

我下面舉個例子:jqGrid的參數傳遞到方法

 var url = '@Url.Action("GetProgData", "Prog")' + '?lbId=' + labId;   

     $("#loginList").jqGrid({ 
     url: url, 
     datatype: "json", 
     colNames: ['PNum', 'Client', 'Salesperson', 'Email'], 
     colModel: [ ... 
     ...... 

的方法看起來像在C#中的MVC如下:

 public JsonResult GetLoginData(int rows, int page, string sidx, string sord, string searchField, string searchString, string searchOper, int? labId) 

我喜歡做的是通過拉比德的價值有條件地,所以我有以下,但似乎並沒有通過labId,因爲它返回null:

 $("#LabId").change(function() { 
     labId = $("#LabId").val(); 
     setupGrid(labId); 
     $("#loginList").trigger("reloadGrid", [{ page: 1}]); 
     }); 

不知道當我做一個下拉拉比德的簡化版,價值都要經過精細

回答

2

的.change我認爲你可以發送nulllabId如果

$("#loginList").jqGrid({ 
    url: '@Url.Action("GetProgData", "Prog")', 
    postData: { 
     lId: function() { 
      var labId = $("#LabId").val(); 
      return labId === "" ? null : labId; 
     } 
    }, 
    datatype: "json", 
    colNames: ['PNum', 'Client', 'Salesperson', 'Email', 
    ... 
}); 

如果上述解決方案將無法工作的價值,比你可以做以下替代

$("#loginList").jqGrid({ 
    url: '@Url.Action("GetProgData", "Prog")', 
    serializeGridData: function (data) { 
     var labId = $("#LabId").val(); 
     return labId === "" ? data : $.extend(true, {}, data, {lId: labId}); 
    }, 
    datatype: "json", 
    colNames: ['PNum', 'Client', 'Salesperson', 'Email', 
    ... 
});