我正在使用具有层次结构的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);
}
}
}
}
有任何想法吗?!?!
有用于层次结构扩展的客户端API以及ExpandHierarchyToTop()服务器方法。看看this demo。
迪克
如果您希望查看所有层次结构级别,请将HierarchyDefaultExpanded设置为MasterTableView和所有GridTableViews。有关详细信息,请参阅this link。
试试这个
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;
}
}
}
在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;
}
}
}
}