如何在网格内容加载时隐藏jqgrid标头?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在网格内容加载时隐藏jqgrid标头?相关的知识,希望对你有一定的参考价值。

出于原因,我需要隐藏由jqgrid生成的默认标头并为其设置我自己的标头。对于演示,我正在尝试像this这样的东西。

        loadComplete:function(){
        //$(".ui-jqgrid-titlebar").css("display","none");
        $(".ui-jqgrid-hdiv").css("display","none");
        if (!$(".ui-jqgrid-titlebar").next().hasClass("newheader"))
        {
            $("<div class='newheader'><div class='col-md-6''> FirstText </div><div class='col-md-6'> SecondText </div></div>").insertAfter(".ui-jqgrid-titlebar");           
        }

    },

但我的实现有13列50行也是“分组”网格。

目前,填充网格大约需要4秒钟。在此加载时间期间,将显示默认标头。但我希望在内容加载时隐藏它。我该怎么做?

在一个answer中,我开始知道为了隐藏标题,我们必须省略标题。但是我需要标题而不是标题。帮助我!

答案

在我看来,你只想改变网格布局(所有外部潜水和标题),而不是网格体。创建jqGrid后,将立即创建网格布局。另一方面,将在加载数据后调用loadCompleteloadComplete中的所有当前代码与数据无关。因此,您可以从jqGrid外部移动代码。此外,如果您不想显示标题,则可以删除caption参数。之后,您可以删除不需要的行$(".ui-jqgrid-titlebar").css("display","none");。代码将是

// create the grid
$("#grid1").jqGrid({
    ...
});
$(".ui-jqgrid-hdiv").css("display","none");
$("<div class='newheader'><div class='col-md-6''>FirstText</div><div class='col-md-6'>SecondText</div></div>").insertAfter(".ui-jqgrid-titlebar");  

https://jsfiddle.net/92da8xhq/11/。我在创建网格之前添加了$("#grid1").jqGrid("GridUnload");,因为您当前的代码可以将showgrid函数更多地调用一次。

另一答案

您可能希望使用gridComplete而不是loadComplete,但如果您使用Guriddo jqGrid,或者您的代码可以包含在setTimeout函数中,则在显示您自己的标题之前,这是正确的

以上是关于如何在网格内容加载时隐藏jqgrid标头?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不重新加载网格的情况下将行添加到下一页中的 jqGrid?

在加载jqgrid时,对加载的数据应用默认过滤器

jqGrid 不填充数据

单击jqgrid网格时如何仅突出显示单元格

jqGrid GridUnload / GridDestroy

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