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!
  • 相关阅读:
    表单提交:button input submit 的区别
    JavaScript中改变this指针的注意事项
    宝塔服务器配置nginx刷新404的问题汇总
    ES6笔记整理
    axios网络请求
    v-model双向绑定
    v-bind动态绑定
    前端模块化
    vue router 路由
    JS高阶函数
  • 原文地址:https://www.cnblogs.com/chenhaibin/p/2257221.html
Copyright © 2011-2022 走看看