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
总结
以上是生活随笔为你收集整理的GridView里面嵌套RadioButton的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Jlink无法识别CPU/lpc2103
- 下一篇: Unity3D如何有效地组织代码?(转)