GridView里面嵌套RadioButton

很多时候需要在GridView里面嵌套一些其它的控件,比如说单选按钮,复选按钮,文本框等等,这个事儿也不难,以前做过很多次也没遇见什么问题,但是最近却遇到了一件令我非常苦恼的事情,我在GridView里面嵌套了一个RadioButton,我的目的是想让用户选择一个对象对其操作,起初是这个RadioButton无法单选,给它指定了GroupName之后也是一样的问题,后来这个解决了,代码如下:

protected void rdbCheck_CheckedChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < this.dgvUserGrouopList.Rows.Count; i++)
        {
            ((RadioButton)this.dgvUserGrouopList.Rows[i].FindControl("rdbCheck")).Checked = false;

        }
        ((RadioButton)sender).Checked = true;


        //foreach (GridViewRow row in this.dgvUserGrouopList.Rows)
        //{
        //    if (row.RowType == DataControlRowType.DataRow)
        //    {
        //        RadioButton rb = (RadioButton)row.FindControl("rdbCheck");
        //        rb.Checked = false;
        //    }
        //}

        //RadioButton btn = sender as RadioButton;
        //btn.Checked = true;

        //foreach (GridViewRow row in this.dgvUserGrouopList.Rows)
        //{
        //    if (row.RowType == DataControlRowType.DataRow)
        //    {
        //        RadioButton rb = (RadioButton)row.FindControl("rdbCheck");

        //        if (rb.Checked)
        //        {
        //            SelectGrouopID = row.Cells[3].Text.Trim();//给全局变量赋值
        //        }
        //    }
        //}        
    }


以上两种方法都可以达到效果,但是第一种明显要简洁一些,单选没问题了,随之而来的便是不管怎么样都无法获取GridView上面的数据,如下图:

选中数据之后,点击“修改”按钮,进入代码里面:

可以看到,获取不到GridView上面的数据了,我以为是RadioButton的问题,所以换成了CheckBox,可以搞了半天一样的问题,后来我看了看前台的代码,发现有个问题,不知道当时为什么给GridView绑定字段的时候都是使用的TemplateFeld,并不是BoundField,会不会是这个原因呢?于是将TemplateFeld换成了BoundField,果然,问题得到解决,如下图:

图片中那几个“增加”,“删除”,“修改”,“保存”按钮的图片是在FrankTang的博客中截图的,当时觉得这几个图片挺实用的,就截图保存了下来,在此表示感谢。

http://www.cnblogs.com/FrankTang/archive/2012/10/30/2746081.html

【推广】 免费学中医,健康全家人
原文地址:https://www.cnblogs.com/allen0118/p/2751098.html