2009-11-20 67 views
1

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

谢谢!

更新: 我已经写了基于关闭的迪克·兰帕德以下建议扩大/三个层次崩溃的radgrid控件的所有行的API文档的JavaScript函数。它扩展了第一个mastertableview行的两个子级中的所有mastertableview行和所有嵌套的detailtableview行,但是当它进入第二个mastertableview行(whew!)的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); 
      } 
     } 
    }    
} 

任何想法?!?!

回答

3

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

迪克

1

如果你想看到所有的层级,设置HierarchyDefaultExpanded到MasterTableView和所有的GridTableViews。有关更多详细信息,请参阅this link

+0

这适用于网页加载。如何从JavaScript做这个动作? – Birey 2013-10-30 21:51:22

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