I have a RadGrid with that works correctly outside of the RadPanelBar. When I put it inside of a RadPanelBar the OnCheckedChanged="ToggleRowSelection" does not fire. Does "protected void ToggleRowSelection(object sender, EventArgs e)" need to be defined differently? It looks like the auto post back works because the check mark disappears. If I remove ToggleRowSelection in the c# section I get a compile error indicating that there is no definition for ToggleRowSelection so I think it is all correct.
Thanks,
Scott
<
telerik:RadPanelBar
ID
=
"RadPanelBar1"
Runat
=
"server"
Width
=
"774px"
>
<
Items
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Web Servers"
>
<
ContentTemplate
>
<
telerik:RadGrid
ID
=
"WebServerRadGrid"
runat
=
"server"
AllowPaging
=
"True"
PageSize
=
"5"
Skin
=
"Silk"
AllowMultiRowSelection
=
"true"
>
<
MasterTableView
>
<
Columns
>
<
telerik:GridTemplateColumn
UniqueName
=
"CheckBoxTemplateColumn"
>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"CheckBox1"
runat
=
"server"
OnCheckedChanged
=
"ToggleRowSelection"
AutoPostBack
=
"True"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
telerik:RadPanelItem
>
</
Items
>
</
telerik:RadPanelBar
>
protected
void
ToggleRowSelection(
object
sender, EventArgs e)
{
((sender
as
CheckBox).NamingContainer
as
GridItem).Selected = (sender
as
CheckBox).Checked;
bool
checkHeader =
true
;
foreach
(GridDataItem dataItem
in
WebServerRadGrid.MasterTableView.Items)
{
if
(!(dataItem.FindControl(
"CheckBox1"
)
as
CheckBox).Checked)
{
checkHeader =
false
;
break
;
}
}
GridHeaderItem headerItem = WebServerRadGrid.MasterTableView.GetItems(GridItemType.Header)[0]
as
GridHeaderItem;
(headerItem.FindControl(
"headerChkbox"
)
as
CheckBox).Checked = checkHeader;
}
6 Answers, 1 is accepted
I tested your scenario and at my side the event fires correctly regardless of the Grid being placed in the PanelBar's template or not. You can find a sample website attached to this reply.
Regards,
Ivan Danchev
Telerik

Your example works. My problem seems to be when I use a DataTable to specify the data that appears in the grid. When I switch to DataSourceID="SqlDataSource" mine works. Am I missing something that needs to be done?
DataTable table =
new
DataTable();
table.Columns.Add(
"Server"
,
typeof
(
string
));
table.Columns.Add(
"Comment"
,
typeof
(
string
));
...
RadGrid1.DataSource = table;
RadGrid1.DataBind();
There is no difference at my side when binding the Grid to a DataTable (see the attached sample page) and the CheckBox' OnCheckedChanged event fires as expected.
I would suggest checking for js errors in the browser's developer tools as they could be a potential cause for the event not firing.
Regards,
Ivan Danchev
Telerik

I still am having problems. Your examples work, but they make enough changes so that when I try to make it do what I want it breaks. I have pages that fix one thing, but break another.
Is there any other code (this is not a web application) besides the .aspx code listed here that I need to look at to see why things are not firing or being seen?
For example on this page the OnCheckedChanged="ToggleRowSelection" is not firing, but I can see all the radgrids (I added others).
<
telerik:RadPanelBar
ID
=
"RadPanelBar1"
Runat
=
"server"
>
<
Items
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Root RadPanelItem1"
>
<
ContentTemplate
>
<
asp:Button
ID
=
"Button1"
runat
=
"server"
OnClick
=
"Action_Button_Click"
Text
=
"Button"
/>
<
telerik:RadGrid
ID
=
"WebServerRadGrid"
runat
=
"server"
AllowMultiRowSelection
=
"true"
>
<
MasterTableView
>
<
Columns
>
<
telerik:GridTemplateColumn
UniqueName
=
"CheckBoxTemplateColumn"
>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"CheckBox1"
runat
=
"server"
OnCheckedChanged
=
"ToggleRowSelection"
AutoPostBack
=
"True"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
telerik:RadPanelItem
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Root RadPanelItem2"
>
<
ContentTemplate
>
<
asp:Button
ID
=
"Button2"
runat
=
"server"
Text
=
"Button"
/>
<
telerik:RadGrid
ID
=
"RadGrid2"
runat
=
"server"
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
telerik:RadPanelItem
>
</
Items
>
</
telerik:RadPanelBar
>
And in this example the OnCheckedChanged works, but The code behind can't see two of the RadGrids.
GridDataItemCollection Items = null;
Items = WebServerRadGrid.MasterTableView.Items; //OK
Items = NetSageRadGrid.MasterTableView.Items; // The name 'NetSageRagGrid' does not exist in the current content
Items = FeederRadGrid.MasterTableView.Items; // The name 'FeederRagGrid' does not exist in the current content
<
telerik:RadPanelBar
ID
=
"RadPanelBar1"
Runat
=
"server"
Width
=
"774px"
>
<
Items
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Web Servers"
>
<
ContentTemplate
>
<
asp:Button
ID
=
"QueryButton"
CommandArgument
=
"webservers"
CommandName
=
"Query"
runat
=
"server"
OnClick
=
"Action_Button_Click"
Text
=
"Query Servers"
/>
<
asp:Button
ID
=
"Button2"
runat
=
"server"
Text
=
"Button"
/>
<
telerik:RadGrid
ID
=
"WebServerRadGrid"
runat
=
"server"
AllowMultiRowSelection
=
"true"
>
<
MasterTableView
>
<
Columns
>
<
telerik:GridTemplateColumn
UniqueName
=
"CheckBoxTemplateColumn"
>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"CheckBox1"
runat
=
"server"
OnCheckedChanged
=
"ToggleRowSelection"
AutoPostBack
=
"True"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
telerik:RadPanelItem
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"NetSage Servers"
>
<
ContentTemplate
>
<
asp:Button
ID
=
"Button1"
CommandArgument
=
"netsageservers"
CommandName
=
"Query"
runat
=
"server"
OnClick
=
"Action_Button_Click"
Text
=
"Query Servers"
/>
<
asp:Button
ID
=
"Button3"
runat
=
"server"
Text
=
"Button"
/>
<
telerik:RadGrid
ID
=
"NetSageRadGrid"
runat
=
"server"
AllowMultiRowSelection
=
"true"
>
<
MasterTableView
>
<
Columns
>
<
telerik:GridTemplateColumn
UniqueName
=
"CheckBoxTemplateColumn"
>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"CheckBox1"
runat
=
"server"
OnCheckedChanged
=
"ToggleRowSelection"
AutoPostBack
=
"True"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
telerik:RadPanelItem
>
<
telerik:RadPanelItem
runat
=
"server"
Text
=
"Feeder Servers"
>
<
ContentTemplate
>
<
asp:Button
ID
=
"Button5"
CommandArgument
=
"feederservers"
CommandName
=
"Query"
runat
=
"server"
OnClick
=
"QueryButton_Click"
Text
=
"Query Servers"
/>
<
asp:Button
ID
=
"Button6"
runat
=
"server"
Text
=
"Button"
/>
<
telerik:RadGrid
ID
=
"FeederRadGrid"
runat
=
"server"
AllowMultiRowSelection
=
"true"
>
<
MasterTableView
>
<
Columns
>
<
telerik:GridTemplateColumn
UniqueName
=
"CheckBoxTemplateColumn"
>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"CheckBox1"
runat
=
"server"
OnCheckedChanged
=
"ToggleRowSelection"
AutoPostBack
=
"True"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
telerik:RadPanelItem
>
</
Items
>
</
telerik:RadPanelBar
>
The code behind can see
GridDataItemCollection Items = null;
Items = WebServerRadGrid.MasterTableView.Items; //OK
Items = NetSageRadGrid.MasterTableView.Items; // The name 'NetSageRagGrid' does not exist in the current content
Items = FeederRadGrid.MasterTableView.Items; // The name 'FeederRagGrid' does not exist in the current content

I had forgot to check for postback. Once this was added it fixed one problem. That is good enough at the moment.
if (!IsPostBack)
Thank you for getting back to us and sharing what was causing the issue.
Regards,
Ivan Danchev
Telerik