代码之家  ›  专栏  ›  技术社区  ›  Herb Caudill

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

  •  0
  • Herb Caudill  · 技术社区  · 15 年前

    每当我在jqgrid上调用trigger(“reloadgrid”)时,它会清除现有的表,显示一条“正在加载”消息,然后重新生成现有的数据-整个过程只需要几毫秒,但如果经常发生,它会使用户界面感觉未完成。是否有可能阻止它清除和显示加载消息,并仅替换为最新的DTA?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Aaronaught    15 年前

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

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

    如果您需要在运行中更改此项,请使用 setGridParam 方法。其他选项 加载用户界面 是“启用”(显示加载消息)和“阻止”(相同,但在加载时阻止任何其他输入)。

        2
  •  0
  •   Herb Caudill    15 年前

    不幸的是,jqgrid在进行Ajax调用之前清除了表中的内容,只要它在等待答案,表就为空。

    如果您使用带滚动的固定高度表,这不是一个问题,但是在大多数情况下,我有相当短的表,并且喜欢一次显示完整的内容,并根据需要向下滚动页面。下面的tweak在每次加载表时(需要从 gridInitialized() ):

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