dotNet平台模板列中的单选无效的解决方案

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

最近在grid里添加一个单选列,最开始直接创建一个模板列,然后在模板列里放一个radiobutton。并指定其GroupName。这是radiabutton最常用的方法。但是在Grid里,这样却毫无效果。

开始打算用javascript写响应radiobutton的onclick函数。思路的确可以。但是为什么radiobutton在grid里指定了其GoupName还是不能实现单选呢?

写了个测试用例。前台代码如下:(数据在后台绑定了)

<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server">

<title>无标题页</title>

<script>

functionsetradio(grid,radio){

vargrid=document.getElementById(grid);

varradios=grid.getElementsByTagName("input");

for(vari=0;i<radios.length;i++){

if(radios.type=radio&&radios[i]!=radio){

radios[i].checked=false;

}

}

}

</script></head>

<body>

<formrunat="server">

<div>

<asp:GridViewrunat="server">

<Columns>

<asp:TemplateField>

<ItemTemplate>

<asp:RadioButtonrunat="server"GroupName="chooze"/>

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

</div>

</form>

</body>

</html>

调试时Grid显示的页面为:

很明显,gird被解析成一个table。里面的radiobutton被解析成input。这个是很自然的。此外,VS还(通过添加前缀)刻意保证每个radiobutton的GroupName都不一样。所以在grid里通过指定其groupName的方式来使得模板列中的radiobutton为同一个组是行不通的(就是有点想不通为什么微软要这样做,可能是一个bug)。实现在grid里单选的比较简单的方法就是用Javascript函数。就是上面前台代码的那个setradio()函数。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航