1

我正在使用具有层次结构的 RadGrid (2009 Q2)。客户端 api 中有没有办法扩展所有行,反之亦然?

谢谢!

更新: 我根据下面 Dick Lampard 建议的 api 文档编写了一个 javascript 函数,以展开/折叠具有三个级别的 radgrid 中的所有行。它扩展了第一个 mastertableview 行的两个子级别中的所有 mastertableview 行和所有嵌套的 detailtableview 行,但是当它转到第二个 mastertableview 行的 detailtableview 行时它会中断(哇!)。我得到的错误是“_350 未定义”。这来自 Telerik.Web.UI.WebResource 文件。

function ExpandCollapseAll(expand) {
    var grid = $find("<%= rgHistory.ClientID %>");

    master = grid.get_masterTableView();
    var masterRowCount = master.get_dataItems().length;

    for (masterIndex = 0; masterIndex < masterRowCount; masterIndex++) {
        if (expand) {
            master.expandItem(masterIndex);
        }
        else {
            master.collapseItem(masterIndex);
        }
    } 

    var detailTables = grid.get_detailTables();
    var detailTableCount = detailTables.length;

    for (detailTableIndex = 0; detailTableIndex < detailTableCount; detailTableIndex++) {
        var detailTable = detailTables[detailTableIndex];
        var rowCount = detailTable.get_dataItems().length;
        for (rowIndex = 0; rowIndex < rowCount; rowIndex++) {
            if (expand) {
                //expandItem is failing!  detailTableIndex and rowIndex are correct
                detailTables[detailTableIndex].expandItem(rowIndex);
            }
            else {
                detailTables[detailTableIndex].collapseItem(rowIndex);
            }
        }
    }            
}

有任何想法吗?!?!

4

4 回答 4

3

有用于层次扩展的客户端 API 以及 ExpandHierarchyToTop() 服务器方法。看看这个演示

迪克

于 2009-11-22T12:29:24.663 回答
1

如果您想查看所有层次结构级别,请将 HierarchyDefaultExpanded 设置为 MasterTableView 和所有 GridTableView。有关更多详细信息,请参阅此链接

于 2013-07-25T20:29:27.063 回答
0

尝试这个

protected void Page_PreRenderComplete() {   
 if (!Page.IsPostBack) {    
   foreach (GridItem item in MyGrid.MasterTableView.Controls[0].Controls) {      
      if (item is GridGroupHeaderItem)
        if (item.GroupIndex.ToString() != "0")
          item.Expanded = !item.Expanded;
    } 
  } 
}      
于 2014-02-19T09:34:54.290 回答
0

在 radGrid.DataBind() 之后

使用这个方法

private void ExpanadAllRadGridNodes()
        {
            foreach (GridDataItem item_L1 in radgridQuestionGroups.MasterTableView.Items)
            {
                foreach (GridTableView item_L2 in (item_L1 as GridDataItem).ChildItem.NestedTableViews)
                {
                    foreach (GridDataItem item_L3 in item_L2.Items)
                    {
                        item_L3.Expanded = true;
                    }
                }
            }
        }
于 2017-12-16T12:05:20.133 回答