我在GridView中加了CheckBox,我想判断每个行的CheckBox是否被选中,怎样取得它的值?要怎样做?各位高手来帮忙~~

解决方案 »

  1.   

    if(!IsPostBack)BindData();
    foreach (GridViewRow row in GridView1.Rows) 
            { 
                cbx =(CheckBox)row.Cells[8].FindControl("cbxId"); 
                if (cbx.Checked) 
                { 
                    ids += ((HiddenField)(row.FindControl("HiddenField1"))).Value + ","; 
                } 
            } 
            if(ids.EndWiths(",") 
                ids = ids.Substring(0, ids.Length - 1); 
      
    if(!IsPostBack)绑定数据 
    或 
    foreach (GridViewRow gr in this.Gridview1.Rows) 
                { 
                    if (((CheckBox)gr.FindControl("CheckBox1")).Checked) 
                      {} 
                } 
      

  2.   

    if(!IsPostBack)BindData();这句是页面加载的时候绑定数据。BindData()是绑定的一个函数方法,方法名能换成你自己写的绑定函数方法。
    foreach (GridViewRow row in GridView1.Rows)循环遍历GridView1中的所有行。
    cbx =(CheckBox)row.Cells[8].FindControl("cbxId");
    row.Cells[8]取出当前行的第几个单元格,[8]代表第几个单元格,这个不固定,根据你CheckBox所放置的单元格而定。FindControl("cbxId"),FindControl("这里面放你CheckBox的ID")意思是找到当前行CheckBox所在单元格的那个CheckBox。(CheckBox)代表强制转换,把找到的CheckBox强制转换成CheckBox类型。然后赋值给 cbx,cbx可以自己命名,看明白点就是
    CheckBox cbx =(CheckBox)row.Cells[8].FindControl("cbxId");
    if (cbx.Checked)代表当前这个 CheckBox 被选中了

       这里写你要处理的业务代码。
    }
    希望对你有帮助!