展开RadGrid Hierarchy中的所有项目

时间:2009-11-20 20:56:14

标签: telerik client-side radgrid

我正在使用具有层次结构的RadGrid(2009 Q2)。在客户端api中是否有一种方法可以扩展所有行,反之亦然?

谢谢!

更新 我已经编写了一个基于下面的Dick Lampard建议的api文档的javascript函数来展开/折叠三个级别的radgrid中的所有行。它扩展了第一个mastertableview行的两个子级别中的所有mastertableview行和所有嵌套的详细信息视图行,但是当它转到第二个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 个答案:

答案 0 :(得分:3)

有用于层次结构扩展的客户端API以及ExpandHierarchyToTop()服务器方法。查看this demo

迪克

答案 1 :(得分:1)

如果您想查看所有层次结构级别,请将HierarchyDefaultExpanded设置为MasterTableView和所有GridTableViews。有关详细信息,请参阅this link

答案 2 :(得分: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;
    } 
  } 
}      

答案 3 :(得分:0)

在radGrid.DataBind()

之后

使用此Mehtod

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;
                    }
                }
            }
        }