我正在使用具有层次结构的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);
}
}
}
}
任何想法?!?!
答案 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;
}
}
}
}