zoukankan      html  css  js  c++  java
  • dotNet平台模板列中的单选无效的解决方案

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

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

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

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">     
    <title>无标题页</title>
    <script>
    function setradio(grid,radio){
    var grid=document.getElementById(grid);
    var radios=grid.getElementsByTagName("input");
    for(var i=0;i<radios.length;i++){
    if(radios.type=radio&&radios[i]!=radio){
    radios[i].checked
    =false;
    }
    }
    }
    </script> </head>
    <body>
    <form runat="server">
    <div>
    <asp:GridView runat="server">
    <Columns>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:RadioButton runat="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()函数。

    Bingo,go,go,go!
  • 相关阅读:
    C# listView载入图片以大图标方式显示
    判断序列是否对称
    非走不可的弯路
    张国荣的《我》
    函数:找出一句话中的第二个单词
    压缩与解压缩示例:游标编码(runlength encoding)
    前行
    书单
    一个数组中的元素头尾两端依次对调
    第一遍读书笔记
  • 原文地址:https://www.cnblogs.com/chenhaibin/p/2257221.html
Copyright © 2011-2022 走看看