关于在DataGrid里添加一个全选按钮的问题
我想在DataGrid 里加一列选择框,同时额外增加一个"全选"选择框,
通过"全选"选择框来控制全选或全不选
但是按照下面的代码,有这样一个问题,就是只能实现全选,但实现不了全不选
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem) ||
(e.Item.ItemType == ListItemType.SelectedItem) )
{
CheckBox cb ;
//加选择框
cb = new CheckBox();
e.Item.Cells[0].Controls.Add(cb);
//在DataGrid最后一行加"全选"选择框
if(e.Item.ItemIndex == this.DataGrid1.PageSize - 1)
{
cb = new CheckBox();
cb.Text = "全选";
cb.AutoPostBack = true;
cb.CheckedChanged += new System.EventHandler(CheckAll);//-----lag1
e.Item.Cells[0].Controls.Add(cb);
}
}
}
private void CheckAll(object sender, System.EventArgs e)
{
CheckBox ocb = (CheckBox)sender;//--------------------------------lag2
foreach(DataGridItem oDgi in this.DataGrid1.Items)
{
if(oDgi.Cells[0].HasControls())
{
CheckBox cb = (CheckBox)oDgi.Cells[0].Controls[0];
cb.Checked = ocb.Checked;
}
}
}
现在这些代码运行的问题是,当一开始点击"全选"后,能运行到lag1和lag2,所以能实现全选。
当再次点击"全选",就只能运行到fag1,却运行不到fag2,所以就不能实现全不选。
以后再点击"全选",就按照上面两步不断的循环了
恳请高手赐教!