欲实现功能:模板列中加入checkbox用以标识该行是否被选,暂且先通过按按钮在LABEL中加字符串的方法跟踪是否成功
遇到问题:服务器不认选中的CHECKBOX,但是若将按钮先添加功能全部选中,在查看则认为已全部选中
代码如下,省略数据绑定的部分
private void Button1_Click(object sender, System.EventArgs e)
{
//foreach(DataGridItem item in dg.Items)
{
//((CheckBox)item.Cells[0].Controls[1]).Checked=true;
//Label1.Text+="d";
                                    //如果添加这段代码则LABEL1有dddd...,这里注释掉在运行时动态选择,LABEL1无内容
}
foreach(DataGridItem item in dg.Items)
{
if(((CheckBox)item.Cells[0].Controls[1]).Checked==true)
Label1.Text+="ddd";
}
}

解决方案 »

  1.   

    检查你的Page_Load里面
    数据绑定的地方是否有
    if(!Page.IsPostBack)
    {
      //你绑定的数据应该再这里
    }
    这个条件
      

  2.   

    写个基类 
    每次调用就可以了
    基类如下
    public ArrayList GetSelectIDs(DataGrid dg)
    {
    ArrayList alTemp=new ArrayList();
    foreach(DataGridItem dgi in dg.Items)
    {
    foreach(Control ctl in dgi.Cells[0].Controls)
    {
    CheckBox cb=ctl as CheckBox;
    if(cb!=null)
    {    
    if(cb.Checked)
    alTemp.Add(int.Parse(dgi.Cells[1].Text));
    }
    }
    }
    return alTemp;
     
    }
      

  3.   

    if((item.ItemType!=ListItemType.Header ) && (item.ItemType!=ListItemType.Footer))
    {
    if(((CheckBox)(item.Cells[0].Controls[1])).Checked)
    {//做什么?什么地方有错?
    }
    }