如何删除(或隐藏)jqgrid中的标题栏?

时间:2011-03-12 17:26:13

标签: jquery filter jqgrid caption

我看到你可以使用以下代码添加顶部标题栏并输入标题:

jQuery('#grid').setCaption("Title");

无论如何,如果我已设置标题,删除标题栏?

我尝试了这个但它只删除了文本(不删除整个标题栏)。

jQuery('#grid').setCaption("");

2 个答案:

答案 0 :(得分:19)

如果你想快点, 测试

$(".ui-jqgrid-titlebar").hide();

或者如果您有多个网格,那么只隐藏$(“#grid”)的标题栏,然后执行

$("#gview_grid > .ui-jqgrid-titlebar").hide()

答案 1 :(得分:7)

如果您创建没有标题栏(caption: "")的jqGrid,并检查开发者工具或Firebug的网格,您将看到<div>类“ui-jqgrid-titlebar” “将<span>与”ui-jqgrid-title“类和带有”ui-jqgrid-titlebar-close“类的锚作为子元素:

<div id="gbox_list" class="ui-jqgrid ui-widget ui-widget-content ui-corner-all">
    ...
    <div id="gview_list" class="ui-jqgrid-view">
        <div style="display: none;"
             class="ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix">
            <a style="right: 0px;" class="ui-jqgrid-titlebar-close HeaderButton"
               role="link" href="javascript:void(0)">
                <span class="ui-icon ui-icon-circle-triangle-n"></span>
            </a>
            <span class="ui-jqgrid-title"></span>
        </div>
        ...

所以即使你创建没有标题栏的网格jqGrid 创建标题栏的所有隐藏元素

我查看了创建标题的jqGrid代码,可以找到以下片段

if(ts.p.caption) {
    ...
    $(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){
    ...
} else {$(grid.cDiv).hide();}

为了获得与使用caption: ""参数初始化的网格相同的结果,您可以执行以下操作

var mygrid = jQuery('#list'),
    cDiv = mygrid[0].grid.cDiv;
mygrid.setCaption("");
$("a.ui-jqgrid-titlebar-close",cDiv).unbind();
$(cDiv).hide();

只有在您确定网格稍后没有标题(caption)时,才应该从最小化按钮取消绑定。绑定占用的资源较少,对隐藏的网格没有任何作用。

所以Pravat Maskey的the suggestion只是为了隐藏标题是完全正确的,我的调查只证实了这一点。