如何在 mvc 中重新加载 jqgrid post 多个参数

how to post muilti parameters on reload jqgrid in mvc

鉴于我有一个按钮可以在点击时进行搜索,我想用新的参数重新加载数据。 下面是我的脚本

      function SearchClick() {
        var byer = $('#cbbSearch').val();
        var start = $('#txtDate').val();
        var end = $("#txtEndDate").val();
        var search = $("#txtFind").val();
        myJqgrid.jqGrid('setGridParam', { postData: { byer: byer, start: start, end: end, search: search } }).trigger('reloadGrid');
    } 

我的 url 创建网格是:

url: '/UIControl/SearchList?byer=' + byer + '&start=' + start + '&end=' + end + '&search=' + search

但是Controller中的值start、end、search总是null,只有byer值是true。我不知道为什么? 下面是我的控制器

        public ActionResult SearchList(string byer = "---", string start = "", string end = "", string search = "")
    {
        List<StyleSearch> lisData = SearchStyle(byer, start, end, search);
    }

乍一看,您的代码片段看起来不错。可能是其他问题,请尝试使用浏览器开发人员控制台(检查元素),这可能会向您显示一些 javascript 错误(如果有)。

还有另一种方法可以post 将数据返回到服务器,我已经在我的一个 Web 应用程序中使用了它,到目前为止它工作正常,没有任何问题。请试一试,看看是否可行。

myJqgrid.jqGrid('setGridParam', { 
    postData: {
            byer: function () {
                return $("#cbbSearch").val();
            },
            start: function () {
                return $("#txtDate").val();
            },
            end: function () {
                return $("#txtEndDate").val();
            },
            search: function () {
                return $("#txtFind").val();
            },
        },
}).trigger('reloadGrid');

注意:由于 jQGrid 是免费版本,因此网络上有许多可用的分支,例如 Trirand, Gurrido and by Oleg。 Tony Tomov (Trirand) 的官方版本我用过。