代码之家  ›  专栏  ›  技术社区  ›  Chandan

如何在免费jqgrid 4.15.4中重新加载数据

  •  1
  • Chandan  · 技术社区  · 7 年前

    我有一个关于免费jqgrid的问题我的jqgrid正在加载所有数据我已经明确地给出了一个下拉和搜索按钮当我试图通过选择下拉并点击搜索按钮来搜索时,新的数据不会加载到现有的网格中。

    这是我的小提琴: https://jsfiddle.net/x3fger4z/ .

    在页面加载时,我使用这个url:'/MajorsView/GetAllData',但在单击按钮后,我想从另一个url加载。

    下面是我的搜索按钮,实际上我正在成功获取数据,但它并没有反映在网格上:

    <input type="button" onclick="return myfunction();" id="btnFlagStatus" value="Search" class="btn btn-primary" />
    
    function myfunction() {
     var gendarVal = $("#gendarFlagsEnum option:selected").text();
            var URL= "/MajorsView/GetFemaleData?searchKey=" + gendarVal;
            $.ajax({
                type: "GET",
                url: URL,
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(gendarVal),
                datatype:"json",
                success: function (data) {
                    //$("#grid").setGridParam({ url: URL })
                    $("#grid").trigger('reloadGrid');
    
                },
                error: function () {
                    alert("error");
                }
            })
    }
    

    我试着从这些文件中提取参考资料,但没有用

    1 回复  |  直到 7 年前
        1
  •  1
  •   Oleg    7 年前

    如果你使用 datatype: "json" 带着一些 url ,然后你就可以换了 网址 到另一个值并触发 reloadGrid . 不需要手动发出Ajax请求如果你使用 loadonce: true 另外的选择,然后 datatype 的网格将更改为 "local" 处理排序、分页和筛选 本地 . 每一个排序、分页和过滤都只不过是重新加载 datatype: "local" 使用其他参数(例如 page , sortname , postData.filters ). 从而重新加载网格的数据 从服务器 一个人必须恢复 数据类型 到初始值( "json" 在你的情况下)因此您可以使用

    var p = $("#grid").jqGrid("getGridParam"); // get reference to all parameters of jqGrid
    p.url = "/MajorsView/GetFemaleData?searchKey=" + encodeURIComponent(gendarVal)
    $("#grid").trigger("reloadGrid", { fromServer: true });
    

    或者ole可以重置 数据类型 直接地 p.datatype = "json"; ),但是 fromServer: true 在其他情况下可能会有帮助,而且在我看来,这会使代码更具可读性见 更新的 部分 the old answer 了解更多信息。

    推荐文章