是否可以阻止JqGrid在重新加载时闪烁?

每当我在JqGrid上调用trigger(“reloadGrid”)时,它会清除现有的表,显示“加载”消息,然后重新生成现有数据 – 整个过程只需几毫秒,但它会让用户界面感觉不完整如果它发生了很多。 是否可以阻止它清除并显示加载消息,并用最新的dta替换?

如果您只想停止显示加载消息,可以使用loadui选项,即初始化网格时:

 $("#grid").jqGrid({ url: "/site/data", loadui: "disable", ... ); 

如果需要动态更改,请使用setGridParam方法。 对于loadui的其他选项是“启用”(显示加载消息)和“阻止”(相同,但在加载时阻止任何其他输入)。

不幸的是,jqGrid在进行AJAX调用之前清除了表的内容,所以只要它等待答案,表就是空的。

如果你使用带有滚动的固定高度表,这不是一个问题,但在大多数情况下,我有相当短的表,并且喜欢一次显示完整的内容,只需在页面上向下滚动。 以下调整在每次加载表时将min-height值应用于每个表周围的包装器div(这需要从gridInitialized()调用):

  function freezeHeight() { var $tableWrapper = getContainer($grid).find(".ui-jqgrid-bdiv"); $tableWrapper.css("min-height", $tableWrapper.outerHeight()); }