4 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 18 Dec 2009, 09:30 AM
Hi,
Try the code snippet below to set the first nested table in expanded mode. You can change the NestedTableViews and GridNestedViewItem index to 1 to set the second detail table in expanded mode
C#
Thanks,
Princy
Try the code snippet below to set the first nested table in expanded mode. You can change the NestedTableViews and GridNestedViewItem index to 1 to set the second detail table in expanded mode
C#
| GridNestedViewItem firstLevelNestedViewItem = (GridNestedViewItem)RadGrid1.MasterTableView.GetItems(GridItemType.NestedView)[0]; |
| GridItem itemToExpand = firstLevelNestedViewItem.NestedTableViews[0].GetItems(GridItemType.Item)[0]; |
| itemToExpand.Expanded = true; |
Thanks,
Princy
0
Wyatt
Top achievements
Rank 1
answered on 29 Dec 2009, 04:53 PM
Thanks for your quick response! firstLevelNestedViewItem.NestedTableViews(0).GetItems(GridItemType.Item) returns an empty array. Furthermore, the code you provided finds a GridItem and sets Expanded = True, which I was already doing. My problem is that when one sets Expanded = True, both DetailTables are made visible. I only want to show one of the DetailTables at a time.
0
Shinu
Top achievements
Rank 2
answered on 30 Dec 2009, 07:15 AM
Hello Wyatt,
Here's an example that I implemented for a similar kind of scenario. Check it out:
aspx:
| <input type="hidden" id="radGridClickedRowIndex" name="radGridClickedRowIndex" /> |
| <telerik:RadContextMenu ID="RadMenu1" runat="server" |
| onitemclick="RadMenu1_ItemClick"> |
| <Items> |
| <telerik:RadMenuItem Text="Expand/Collapse First Child" /> |
| <telerik:RadMenuItem Text="xpand/Collapse Second Child" /> |
| </Items> |
| </telerik:RadContextMenu> |
js:
| function RowContextMenu(sender, eventArgs) |
| { |
| var menu = $find("<%=RadMenu1.ClientID %>"); |
| var evt = eventArgs.get_domEvent(); |
| if (evt.target.tagName == "INPUT" || evt.target.tagName == "A") { |
| return; } |
| var index = eventArgs.get_itemIndexHierarchical(); |
| menu.show(evt); |
| evt.cancelBubble = true; |
| evt.returnValue = false; |
| if (evt.stopPropagation) |
| { |
| evt.stopPropagation(); |
| evt.preventDefault(); |
| var index = eventArgs.get_itemIndexHierarchical(); |
| document.getElementById("radGridClickedRowIndex").value = index; |
| } |
| } |
c#:
| protected void RadMenu1_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e) |
| { |
| int radGridClickedRowIndex; |
| radGridClickedRowIndex = Convert.ToInt32(Request.Form["radGridClickedRowIndex"]); |
| GridDataItem item = (GridDataItem)RadGrid1.Items[radGridClickedRowIndex]; |
| if (item.Expanded) |
| { |
| if (e.Item.Text == "Expand/Collapse First Child") |
| { |
| ((GridTableView)item.ChildItem.NestedTableViews[0]).Visible = !((GridTableView)item.ChildItem.NestedTableViews[0]).Visible; |
| } |
| else if (e.Item.Text == "Expand/Collapse Second Child") |
| { |
| ((GridTableView)item.ChildItem.NestedTableViews[1]).Visible = !((GridTableView)item.ChildItem.NestedTableViews[1]).Visible; |
| } |
| } |
| } |
Hope this helps you..
Shinu.
0
Wyatt
Top achievements
Rank 1
answered on 30 Dec 2009, 09:53 PM
Thanks, Shinu! I was able to reach a solution based on your code sample. My implementation was slightly different, so I will provide it in case others find it useful.
| 'ToggleItem's expansion is toggled |
| 'nToggleIndex is provided if only one of the DetailTables are to be toggled |
| Private Sub ToggleDetailTable(ByVal ToggleItem As GridDataItem, Optional ByVal nToggleIndex As Integer = -1) |
| If nToggleIndex = -1 Then |
| ToggleItem.Expanded = Not ToggleItem.Expanded |
| ElseIf ToggleItem.Expanded Then |
| ToggleItem.ChildItem.NestedTableViews(nToggleIndex).Visible = Not ToggleItem.ChildItem.NestedTableViews(nToggleIndex).Visible |
| Dim bLeaveExpanded = True |
| For Each TableView As GridTableView In ToggleItem.ChildItem.NestedTableViews |
| If TableView.Visible Then bLeaveExpanded = True |
| Next |
| ToggleItem.Expanded = bLeaveExpanded |
| Else |
| ToggleItem.Expanded = True |
| For nIndex As Integer = 0 To ToggleItem.ChildItem.NestedTableViews.Length - 1 |
| ToggleItem.ChildItem.NestedTableViews(nIndex).Visible = (nIndex = nToggleIndex) |
| Next |
| End If |
| End Sub |