处理GridView不能单选

代码在运行后,GridView会自动给input 的name属性赋值,导致了每一行的name属性都不一样,造成了不能单选的问题。

解决:用JS,在数据绑定后通过JS遍历GridView中的RadioButton将name属性改为相同的值

首先先来实现一个JS函数,用来获取遍历GridView中的RadioButton并将其name属性设置为一个统一的值,例如“myradio”,代码如下:

View Code
 1 <script type="text/javascript">
2 function SetRadioName() {
3 var gv = document.getElementById("GridView1"); //获取GridView的客户端ID
4 var myradio = gv.getElementsByTagName("input"); //获取GridView的Inputhtml
5 for (var i = 0; i < myradio.length; i++) {
6 if (myradio[i].type == 'radio')//hidden
7 {
8 myradio[i].setAttribute("name", "myradio");
9 }
10 }
11 }
12 </script>

接下来在绑定数据后注册调用这段脚本,或者将该脚本写到页面标签视图的最下面,代码如下:

View Code
1 protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 this.BindGridView();
6 ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(),
7 "SetRadioName()", true);
8 }
9 }

运行,成功!!!!!!完美解决!

posted @ 2012-03-29 10:24  Hello Bug  阅读(140)  评论(0编辑  收藏  举报