| using System; |
| using System.Data; |
| using System.Configuration; |
| using System.Web; |
| using System.Web.Security; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using System.Web.UI.WebControls.WebParts; |
| using System.Web.UI.HtmlControls; |
| using Telerik.Web.UI; |
| |
| public partial class _Default : System.Web.UI.Page |
| { |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| |
| } |
| protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e) |
| { |
| if (e.Item is GridHeaderItem) |
| { |
| GridHeaderItem header = (GridHeaderItem)e.Item; |
| CheckBox headerchkbx = new CheckBox(); |
| headerchkbx.ID = "CheckBox2"; |
| headerchkbx.AutoPostBack = true; |
| headerchkbx.CheckedChanged += new EventHandler(headerchkbx_CheckedChanged); |
| header["column"].Controls.Add(headerchkbx); |
| |
| } |
| if (e.Item is GridGroupHeaderItem) |
| { |
| GridGroupHeaderItem header = (GridGroupHeaderItem)e.Item; |
| CheckBox groupchkbx = new CheckBox(); |
| groupchkbx.ID = "CheckBox1"; |
| groupchkbx.AutoPostBack = true; |
| groupchkbx.CheckedChanged += new EventHandler(groupchkbx_CheckedChanged); |
| header.Controls[0].Controls.Add(groupchkbx); |
| } |
| |
| } |
| void headerchkbx_CheckedChanged(object sender, EventArgs e) |
| { |
| |
| foreach (GridDataItem item in RadGrid1.MasterTableView.Items) |
| { |
| CheckBox headerchkbx = (CheckBox)sender; |
| foreach (GridGroupHeaderItem groupHeader in RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader)) |
| { |
| GridItem[] children = groupHeader.GetChildItems(); |
| CheckBox groupchkbx = (CheckBox)groupHeader.Controls[0].FindControl("CheckBox1"); |
| |
| if (headerchkbx.Checked) |
| { |
| item.Selected = true; |
| groupchkbx.Checked = true; |
| } |
| else |
| { |
| item.Selected = false; |
| groupchkbx.Checked = false; |
| } |
| |
| } |
| } |
| } |
| |
| void groupchkbx_CheckedChanged(object sender, EventArgs e) |
| { |
| int chkCount = 0; |
| foreach (GridGroupHeaderItem groupHeader in RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader)) |
| { |
| GridItem[] children = groupHeader.GetChildItems(); |
| |
| CheckBox groupchkbx = (CheckBox)groupHeader.Controls[0].FindControl("CheckBox1"); |
| if ((groupchkbx.Checked)) |
| { |
| chkCount++; |
| } |
| foreach (GridItem child in children) |
| { |
| GridDataItem dataItem = child as GridDataItem; |
| dataItem.Selected = groupchkbx.Checked; |
| |
| foreach (GridHeaderItem item in RadGrid1.MasterTableView.GetItems(GridItemType.Header)) |
| { |
| CheckBox headerchkbx = (CheckBox)item["column"].FindControl("CheckBox2"); |
| |
| if ((!groupchkbx.Checked)) |
| { |
| headerchkbx.Checked = false; |
| } |
| if (RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader).Length == chkCount) |
| { |
| headerchkbx.Checked = true; |
| } |
| |
| } |
| } |
| } |
| } |
| } |