2009-11-20 68 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; 
        } 
       } 
      } 
     }