protected
void Sel_Changed(object sender, EventArgs e)
{
int cntr = 0;
int prevcntr = 0;
//Get Current count
cntr = GetCount(this.CheckBoxList1.Items);
//Check Session
if (Session["obj"] != null)
{
ListItemCollection ls = (ListItemCollection)Session["obj"];
//Get previous state count
prevcntr = GetCount(ls);
//For deselcting the SelectAll when one of the other items is selected
if (cntr != prevcntr && CheckBoxList1.Items.FindByValue("SelectAll").Selected == true)
{
CheckBoxList1.Items.FindByValue("SelectAll").Selected = false;
}// For SelecteAll true option
else
if (ls.FindByValue("SelectAll").Selected == false && CheckBoxList1.Items.FindByValue("SelectAll").Selected == true)
{
SelectAllOptions(true);
}// For SelecteAll False option
else
if (ls.FindByValue("SelectAll").Selected == true && CheckBoxList1.Items.FindByValue("SelectAll").Selected == false)
{
SelectAllOptions(false);
}
Session.Add("obj", null);
}
else
{
//Normal SelectAll option
if (this.CheckBoxList1.Items.FindByValue("SelectAll").Selected == true)
{
SelectAllOptions(true);
}
else
{
//For Selecting the SelectAll option during the selection of all items
if (this.CheckBoxList1.Items.Count - cntr == 1 && CheckBoxList1.Items.FindByValue("SelectAll").Selected == false)
{
CheckBoxList1.Items.FindByValue("SelectAll").Selected = true;
}
}
Session.Add("obj", CheckBoxList1.Items);
}
}
void SelectAllOptions(Boolean val) {
foreach (ListItem lst in
this.CheckBoxList1.Items)
{
lst.Selected = val;
}
}
int GetCount(ListItemCollection ls) {
int prevcntr=0;
foreach (ListItem lst in ls)
{
if (lst.Selected == true)
{
prevcntr = prevcntr + 1;
}
}
return prevcntr;
|