0

我有以下示例:

      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的值,所以我有以下但似乎没有传递labId,因为它返回null:

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

不确定当我在下拉列表的 .change 中执行此操作时,labID 的值不会正常

4

1 回答 1

2

我认为你可以null作为labIdif的值发送

$("#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',
    ...
});
于 2013-01-15T09:11:46.637 回答