我在pageload的时候动态生成了一个gridview,数据源是一个datatable
然后在gridview的 GridView1_RowDataBound 里动态生成了checkbox
CheckBox cb = new CheckBox();
cb.ID = "cb";
cb.ToolTip = e.Row.Cells[1].Text;
cb.AutoPostBack = true;
e.Row.Cells[0].Controls.Add(cb);
cb.CheckedChanged += new EventHandler(this.cbx_CheckedChanged); protected void cbx_CheckedChanged(object sender, EventArgs e)
{
int checknum = 0;
foreach (GridViewRow GVR in GridView1.Rows)
{
CheckBox cb = ((CheckBox)GVR.Cells[0].FindControl("cb"));
if (cb.Checked == true)
{
ListBox1.Items.Add(new ListItem(cb.ToolTip));
checknum += 1;
}
Label2.Text = checknum.ToString(); }
}每次点一个checkbox的时候,label2会变成当前选中的checkbox的个数,但奇怪的是每次取消最后一个选中的 checkbox的社会 label2显示的还是 1 应该是0才对的。
然后在gridview的 GridView1_RowDataBound 里动态生成了checkbox
CheckBox cb = new CheckBox();
cb.ID = "cb";
cb.ToolTip = e.Row.Cells[1].Text;
cb.AutoPostBack = true;
e.Row.Cells[0].Controls.Add(cb);
cb.CheckedChanged += new EventHandler(this.cbx_CheckedChanged); protected void cbx_CheckedChanged(object sender, EventArgs e)
{
int checknum = 0;
foreach (GridViewRow GVR in GridView1.Rows)
{
CheckBox cb = ((CheckBox)GVR.Cells[0].FindControl("cb"));
if (cb.Checked == true)
{
ListBox1.Items.Add(new ListItem(cb.ToolTip));
checknum += 1;
}
Label2.Text = checknum.ToString(); }
}每次点一个checkbox的时候,label2会变成当前选中的checkbox的个数,但奇怪的是每次取消最后一个选中的 checkbox的社会 label2显示的还是 1 应该是0才对的。
{
int checknum = 0;
foreach (GridViewRow GVR in GridView1.Rows)
{
CheckBox cb = ((CheckBox)GVR.Cells[0].FindControl("cb"));
if (cb.Checked == true)
{
ListBox1.Items.Add(new ListItem(cb.ToolTip));
checknum += 1;
}
if (cb.Checked == false)
{
checknum -= 1;
} Label2.Text = checknum.ToString(); }
}
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx