【问题标题】:jqGrid how can I hide subgrid if it empty?jqGrid 如果它为空,我如何隐藏子网格?
【发布时间】:2011-12-22 11:01:13
【问题描述】:

如果子网格为空,如何隐藏子网格? 我试过this solutionthis 但没有运气。

【问题讨论】:

    标签: jqgrid subgrid


    【解决方案1】:

    看看the old answer。这似乎正是您所需要的。

    【讨论】:

    • 有很好的解决方案,但不是我所需要的。在我的情况下,我的行应该带有子网格,并且应该在一个表中没有子网格。它们之间的不同之处仅在于其中一个在子网格中呈现数据,而在其他不是。 Link 进行演示,如果向下滚动,您将看到 4 行不应该与子网格一起使用
    • 顺便说一句,我为我的工作采用了您的解决方案。谢谢。但仍需等待答复)
    【解决方案2】:

    根据this 和奥列格的回答,我解决了我的问题。 在我的表中,所有行都展开了,因此主表的代码如下所示:

    gridComplete: function(){
       var table_name = 'table_18';
       var myGrid = $('#'+table_name);
       var rowIds = myGrid.getDataIDs();
       $.each(rowIds, function (index, rowId){
              myGrid.expandSubGridRow(rowId);
       });
    
       var subGridCells = $("td.sgexpanded",myGrid[0]);
       $.each(subGridCells,function(i,value){
              $(value).unbind('click').html('');
       });
    }
    

    在此代码中,我删除了展开/折叠子网格的单击操作。所以它们总是打开的,不可能折叠它们。

    基于this,我删除了空子网格。

    loadComplete: function(){//in subgrid 
            var table_value = $('#'+subgrid_table_id).getGridParam('records');
            if(table_value === 0){
                $('#'+subgrid_id).parent().parent().remove();
            }
    }
    

    也许存在更简单和优雅的解决方案,但对我来说,它按我的预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      相关资源
      最近更新 更多