各位好,向大家请教个问题,是这样的,我在我的GridView中的第一列中放了一个模板列,然后在这个模板列中放了一个checkBox 和一个label控件,其中label是为了显示我数据库中的一个字段的值,我现在的问题是不知道当我在页面上选择前面的checkBox,按提交时怎样把这一列的数据写到数据库中,请知道怎么做的告诉一声,小弟先在此谢谢大家了.

解决方案 »

  1.   

    将此行的ID绑定到CheckBox,然后提交时判断哪一行是选择的,进行更新。
      

  2.   

    在item_databound 事件里,用findcontrol找到此checkbox控件,并判断此checkbox控件是否被选中,如选中则用
    e.items.cells[索引]来取相应的值就行了  
      

  3.   

    还有一个问题就是我的提交按钮不是在GridView控件里面的,我是一个单独按钮,然后我按它的时候要去判断GridView中有哪些CheckBox被选中,然后把这些行的信息写入数据库.
      

  4.   

    比如说你这个CheckBox放在第一列:
    ((CheckBox)(e.Row.Cells[0].Controls[0]))这句话就相当于你所选的行的CheckBox。
    string id=((CheckBox)(e.Row.Cells[0].Controls[0])).id
    然后可以利用CheckBox的各种属性了。
    比如将此行的ID绑定到这个CheckBox的ID上,
    Label在第二列:
    ((Label)(e.Row.Cells[1].Controls[0]))这句话相当于所选行的Label
    string s=((Label)(e.Row.Cells[1].Controls[0])).text;
    这时可以:
    "update 表 set(字段1) values ('"+s+"') where id='"+id+"'";
      

  5.   

    如果按钮不是在GridView里面的话,就不能用这种方法了。
      

  6.   


    用js来组合被选中的checkbox的value(值) 比如用,号割开 如 1,2,5,9
    点提交按钮后把客户端js 得到值后再用ajax交给cs代码处理即可
      

  7.   

    这时候就要判断了
    string sID="";
     for (int i = 0; i < GridView1.Rows.Count; i++)
        {
           if (((CheckBox)(GridView1.Rows[i].Cells[0].Controls[0])).Checked == true)
           {        
             sID += ((CheckBox)(GridView1.Rows[i].Cells[0].Controls[0])).ID.ToString()+",";          
             }              
          }            
     sID.TrimEnd(',');    
    这样取出来的就是所选的ID值,前提是把行的ID绑定到了CheckBox的ID上。
    然后Label的取值同ID一样。
    最后sID的值是类似:1,2,3,这样的,如果用的话,还要用Split来分隔。      
      

  8.   

    http://www.cnblogs.com/jillzhang/archive/2007/10/14/923926.html