2 Answers, 1 is accepted
0

Shinu
Top achievements
Rank 2
answered on 26 Mar 2012, 07:00 AM
Hi Seth,
I have tried the following code snippet to show ExpandCollapse for some rows based on some condition. Please take look into this and see if it helps.
Aspx:
C#:
Thanks,
Shinu.
I have tried the following code snippet to show ExpandCollapse for some rows based on some condition. Please take look into this and see if it helps.
Aspx:
<
telerik:RadGrid
ID
=
"RadGrid1"
DataSourceID
=
"SqlDataSource1"
runat
=
"server"
Skin
=
"Sunset"
Width
=
"600px"
AutoGenerateColumns
=
"False"
AllowSorting
=
"True"
AllowMultiRowSelection
=
"true"
GridLines
=
"None"
onprerender
=
"RadGrid1_PreRender"
>
<
PagerStyle
Mode
=
"NumericPages"
></
PagerStyle
>
<
MasterTableView
DataSourceID
=
"SqlDataSource1"
DataKeyNames
=
"CustomerID"
CommandItemDisplay
=
"Top"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"OrderID"
DataSourceID
=
"SqlDataSource2"
Width
=
"100%"
runat
=
"server"
CommandItemDisplay
=
"Top"
PageSize
=
"10"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"CustomerID"
MasterKeyField
=
"CustomerID"
/>
</
ParentTableRelation
<Columns>
<
telerik:GridBoundColumn
SortExpression
=
"OrderID"
HeaderText
=
"OrderID"
HeaderButtonType
=
"TextButton"
DataField
=
"OrderID"
UniqueName
=
"OrderID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"OrderDate"
HeaderText
=
"Date Ordered"
HeaderButtonType
=
"TextButton"
DataField
=
"OrderDate"
UniqueName
=
"OrderDate"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"EmployeeID"
HeaderText
=
"EmployeeID"
HeaderButtonType
=
"TextButton"
DataField
=
"EmployeeID"
UniqueName
=
"EmployeeID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
UniqueName
=
"OrdersSelectColumn"
CommandName
=
"Select"
Text
=
"Select"
/>
<
telerik:GridButtonColumn
UniqueName
=
"OrdersDeselectColumn"
CommandName
=
"Deselect"
Text
=
"Deselect"
/>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridBoundColumn
SortExpression
=
"CustomerID"
HeaderText
=
"CustomerID"
HeaderButtonType
=
"TextButton"
DataField
=
"CustomerID"
UniqueName
=
"CustomerID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"ContactName"
HeaderText
=
"Contact Name"
HeaderButtonType
=
"TextButton"
DataField
=
"ContactName"
UniqueName
=
"ContactName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"CompanyName"
HeaderText
=
"Company"
HeaderButtonType
=
"TextButton"
DataField
=
"CompanyName"
UniqueName
=
"CompanyName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
UniqueName
=
"CustomersSelectColumn"
CommandName
=
"Select"
Text
=
"Select"
/>
<
telerik:GridButtonColumn
UniqueName
=
"CustomersSelectColumn"
CommandName
=
"Deselect"
Text
=
"Deselect"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString3 %>"
SelectCommand="SELECT Top 10 * from [Customers]" ></
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"SqlDataSource2"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString3 %>"
SelectCommand="SELECT Top 10 * from [Orders]" >
<
SelectParameters
>
<
asp:SessionParameter
Name
=
"CustomerID"
SessionField
=
"CustomerID"
Type
=
"string"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
C#:
protected
void
RadGrid1_PreRender(
object
sender, EventArgs e)
{
GridItem[] nestedViewItems = RadGrid1.MasterTableView.GetItems(GridItemType.NestedView);
foreach
(GridNestedViewItem nestedViewItem
in
nestedViewItems)
{
foreach
(GridTableView nestedView
in
nestedViewItem.NestedTableViews)
{
TableCell cell = nestedView.ParentItem[
"ExpandColumn"
];
if
(nestedView.ParentItem[
"CustomerID"
].Text ==
"ALFKI"
)
// give your condition
{
cell.Controls[0].Visible =
true
;
nestedViewItem.Visible =
true
;
}
else
{
cell.Controls[0].Visible =
false
;
nestedViewItem.Visible =
false
;
}
}
}
}
Thanks,
Shinu.
0

Seth
Top achievements
Rank 1
answered on 26 Mar 2012, 04:22 PM
Thank you for the reply, That worked with a small change as I do not have Detail Tables, but a NestedViewTemplate:
Dim
nestedViewItems()
As
GridItem = rgStops.MasterTableView.GetItems(GridItemType.NestedView)
For
Each
oNestedViewItem
As
GridNestedViewItem
In
nestedViewItems
Dim
oCell
As
TableCell = oNestedViewItem.ParentItem(
"ExpandColumn"
)
If
oNestedViewItem.ParentItem(
"StopLocationSts"
).Text =
"O"
And
msStopLocationStsPrev =
"C"
Then
oCell.Controls(0).Visible =
True
oNestedViewItem.Visible =
True
End
If
msStopLocationStsPrev = oNestedViewItem.ParentItem(
"StopLocationSts"
).Text
Next