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の値を条件付きで渡すことです。そのため、次のようになりますが、nullを返すためlabIdを渡さないようです。

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

ドロップダウンの.changeでそれを行うと、labIDの値がうまくいきません。

4

1 に答える 1

2

ifnullの値として送れると思いますlabId

$("#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 に答える