Hi, i have a RadGrid with checkbox like this
I need a javascript function to select/deselect all the checkboxes in the grid. How can I do this?
Thanks
<telerik:GridTemplateColumn UniqueName="Assigned" > <ItemTemplate> <telerik:RadButton ID="checkAssigned" runat="server" ToggleType="CheckBox" ButtonType="ToggleButton" AutoPostBack="false" Skin="Forest" EnableEmbeddedSkins="true" EnableEmbeddedBaseStylesheet="true" > <ToggleStates> <telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckboxChecked" Selected="true" /> <telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckbox" /> </ToggleStates> </telerik:RadButton> </ItemTemplate> <ItemStyle Width="50px" /> </telerik:GridTemplateColumn>Thanks
5 Answers, 1 is accepted
0
Gimmik
Top achievements
Rank 1
answered on 16 May 2011, 05:53 PM
Hi Martin,
Does it have to be a client-side javascript function? The most straightforward way to do this is with a server-side method that will update all the check boxes when you check a box in the header. If you fully leverage the power of AJAX you would only need a partial post-back which would be much more efficient if there is anything else on the page.
Here's an example of to setup the header row with the checkbox.
Here's the server-side methods.
Hope this helps!
-Gimmik
Does it have to be a client-side javascript function? The most straightforward way to do this is with a server-side method that will update all the check boxes when you check a box in the header. If you fully leverage the power of AJAX you would only need a partial post-back which would be much more efficient if there is anything else on the page.
Here's an example of to setup the header row with the checkbox.
<MasterTableView AutoGenerateColumns="true"> <Columns> <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn" Display="true"> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True" /> </ItemTemplate> <HeaderTemplate> <asp:CheckBox ID="headerChkbox" runat="server" OnCheckedChanged="ToggleSelectedState" AutoPostBack="True" /> </HeaderTemplate> </telerik:GridTemplateColumn> </Columns></MasterTableView> Here's the server-side methods.
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 RadGrid1.MasterTableView.Items) { if (!(dataItem.FindControl("CheckBox1") as CheckBox).Checked) { checkHeader = false; break; } } GridHeaderItem headerItem = RadGrid1.MasterTableView.GetItems(GridItemType.Header)[0] as GridHeaderItem; (headerItem.FindControl("headerChkbox") as CheckBox).Checked = checkHeader; } protected void ToggleSelectedState(object sender, EventArgs e) { CheckBox headerCheckBox = (sender as CheckBox); foreach (GridDataItem dataItem in RadGrid1.MasterTableView.Items) { (dataItem.FindControl("CheckBox1") as CheckBox).Checked = headerCheckBox.Checked; dataItem.Selected = headerCheckBox.Checked; } }Hope this helps!
-Gimmik
0
Martin
Top achievements
Rank 1
answered on 16 May 2011, 06:13 PM
Yes, It has to be using javascript, the idea is to loop over the checkboxes in the grid and use .set_checked() method to set the checked value.
0
Gimmik
Top achievements
Rank 1
answered on 16 May 2011, 08:47 PM
Hi Martin,
In that case - Here's demo on client side row selection:
http://demos.telerik.com/aspnet-ajax/grid/examples/client/selecting/defaultcs.aspx
If that's what you need here's the document that shows you how to implement it. Otherwise I can show you how to do it fully manual with an explicit JavaScript function:
http://www.telerik.com/help/aspnet-ajax/grid-selecting-multiple-rows-client-side.html
Hope this helps!
-Gimmik
In that case - Here's demo on client side row selection:
http://demos.telerik.com/aspnet-ajax/grid/examples/client/selecting/defaultcs.aspx
If that's what you need here's the document that shows you how to implement it. Otherwise I can show you how to do it fully manual with an explicit JavaScript function:
http://www.telerik.com/help/aspnet-ajax/grid-selecting-multiple-rows-client-side.html
Hope this helps!
-Gimmik
0
Accepted
Hi Martin,
The easiest way to check/uncheck all the RadButton's in the grid, is to handle the load (OnClientLoad property) client-side event of the button, and populate a global array of buttons. For your convenience I have created a sample project that implements this idea. Here is its full source code:
ASPX
CS
Greetings,
Pero
the Telerik team
The easiest way to check/uncheck all the RadButton's in the grid, is to handle the load (OnClientLoad property) client-side event of the button, and populate a global array of buttons. For your convenience I have created a sample project that implements this idea. Here is its full source code:
ASPX
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <script type="text/javascript"> var buttons = []; function ButtonLoad(sender, args) { Array.add(buttons, sender); } var checked = true; function Check() { var length = buttons.length; for (var i = 0; i < length; i++) { buttons[i].set_checked(checked); } checked = !checked; } </script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <div> <input type="button" onclick="Check(); return false;" value="Check Buttons" /> </div> <telerik:RadGrid ID="RadGrid1" runat="server"> <MasterTableView AutoGenerateColumns="true"> <Columns> <telerik:GridTemplateColumn UniqueName="Assigned"> <ItemTemplate> <telerik:RadButton ID="checkAssigned" runat="server" ToggleType="CheckBox" ButtonType="ToggleButton" OnClientLoad="ButtonLoad" Skin="Forest" AutoPostBack="false"> </telerik:RadButton> </ItemTemplate> <ItemStyle Width="50px" /> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </form></body></html>CS
using System;public partial class Default_Button : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { RadGrid1.DataSource = new string[] { "1", "2", "3", "4", "2", "3", "4", "2", "3", "4", "2", "3", "4", "2", "3", "4" }; RadGrid1.DataBind(); }}Greetings,
Pero
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
Martin
Top achievements
Rank 1
answered on 18 May 2011, 06:24 PM
Thanks, works great