【问题标题】:jQGrid reload not working once table becomes empty一旦表变空,jQGrid重新加载不起作用
【发布时间】:2013-05-31 19:12:40
【问题描述】:

我遇到了 jqGrid relaod 的问题。

这就是我所拥有的。

当我的页面加载时我建立一个表格

  $("#systemPropList").jqGrid(
        {
          url : '${servletPath}/systemProperties.data',
          colNames:['Key Name','Key Value','Description','System Name','Work'],
          colModel : [
                {name:'propertyKey',index:'propertyKey', width:155, align:'center'},
                {name:'propertyValue',index:'propertyValue', width:100, align:'center'},
                {name:'propertyDescription',index:'propertyDescription'},
                {name:'propertySystemName',index:'propertySystemName', width:100, align:'center'},
                {name:'propertyId', sortable:false, width:60, align:'center', formatter:workButtons }
          ],
          sortname: 'propertyKey',
          sortorder: "desc"
        })

我在顶部有一个选择框,用于根据从 Dropbox 中选择的值重新加载此表,并且我已将重新加载绑定到 onChange。

 $("select[name=systemName]").change(function(obj){
            gridReload();
 });

    function gridReload(){
     $("#systemPropList").setGridParam({"page": 1});
     $("#systemPropList").jqGrid("setGridParam",{postData:{propertySystemName :     $("#systemName option:selected").val()}}).trigger("reloadGrid");
    }

这工作正常,直到我选择了一个数据可用的选项。但是一旦我选择了一个没有任何数据的选项,表格就会变成空,并且即使我更改了选择,表格仍然是空的。

我通过萤火虫检查了没有 JS 错误并且重新加载正在正确调用服务器并且服务器正在返回数据。

我错过了什么?

【问题讨论】:

  • 为什么会有两个 setGridParam 调用?把它合二为一,看看是否能解决问题。将{"page":1} 移动到第二行

标签: javascript jquery jqgrid


【解决方案1】:

首先我认为你应该更好地使用postDatapropertySystemName 定义为函数:

postData: {
    propertySystemName: function () {
        return $("#systemName option:selected").val();
    }
}

(有关详细信息,请参阅答案)。之后,您将不需要在 change 内部(或在 gridReload 内部)重置 propertySystemName

你可以尝试做以下事情

function gridReload() {
    $("#systemPropList").jqGrid("setGridParam", {lastpage: 1})
        .trigger("reloadGrid", [page: 1]);
}

【讨论】:

  • 谢谢,我找到了问题所在。这是因为一些工程师已经覆盖了 jqGrid 以在出现错误且没有数据的情况下显示自定义消息,并且在这样做时他们删除了 jqGrid 第一行并将其替换为错误消息的 DIV。所以我只是用在另一个 TR 中附加相同的 DIV 而不是替换第一行来替换它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
相关资源
最近更新 更多