0

我有一个工作得很好的两级 jqGrid(网格/子网格)实现。现在我有一个要求,促使我只在一些二级行中实现三级子网格。如果行上的任何条件不允许,有什么办法可以排除第三层的开放?

非常感谢

根据@Oleg 回答编辑

我已经实现了参考答案中更复杂的逻辑示例,即

loadComplete: function() {
    var grid = $("#list");
    var subGridCells = $("td.sgcollapsed",grid[0]);
    $.each(subGridCells,function(i,value){
         [...]
         var rowData = grid.getRowData( ??? );
    });
}

我可以使用任何字段来检索每个循环中的 rowData 吗?

4

1 回答 1

1

如果我正确理解了您的问题,您可以像我在答案中描述的那样做同样的事情,但是在子网格的第二级上执行此操作。要在某些行中隐藏“+”图标,您只需在二级子网格的元素上.unbind("click").html("");执行。"td.sgcollapsed"

更新演示演示了如何获取rowid和使用getLocalRow(或者getRowData)隐藏选择性子网格图标(“+”图标)。loadComplete我在演示中使用了以下代码:

loadComplete: function () {
    var $grid = $(this);
    $.each($grid.find(">tbody>tr.jqgrow>td.sgcollapsed"), function () {
        var $tdSubgridButton = $(this),
            rowid = $tdSubgridButton.closest("tr.jqgrow").attr("id"),
            rowData = $grid.jqGrid("getLocalRow", rowid);

        if (rowData.amount > 250 ) {
            $tdSubgridButton.unbind("click").html("");
        }
    });
}
于 2013-10-09T14:34:08.100 回答