zoukankan      html  css  js  c++  java
  • GridView中CheckBox,RadioButton并存的同时且有相互关系

    目的:  在GridView中一列存放CheckBox,一列存放RadioButton;并且选择了CheckBox才能激活同行的RadioButton.

    前台文件

    <asp:GridView ID="GridView1" runat="server" Width="99%" AutoGenerateColumns="False"
                                SkinID="GridViewskin" onrowdatabound="GridView1_RowDataBound">
                                <Columns>
                                    <asp:TemplateField HeaderText="编号" ItemStyle-Width="25%">
                                        <ItemTemplate>
                                            <%#Eval("ID")%>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="名称" ItemStyle-Width="25%">
                                        <ItemTemplate>
                                         <%#(Eval("Name"))%>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="设置" ItemStyle-Width="25%">
                                        <ItemTemplate>
                                         <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true"
                                                oncheckedchanged="CheckBox1_CheckedChanged" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="默认" ItemStyle-Width="25%">
                                        <ItemTemplate>
                                        <asp:RadioButton ID="RadioButton1" runat="server" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>

                            </asp:GridView>

    <script type="text/javascript">
        var last=null;
        function single(obj)
        {
          if(last==null)    //第一次选择RadioButton时赋id值给last
          {
             last=obj.id; 
          }
          else            //第一次以后的每一次都在这运行,把上此的RadioButton.Checked=false,记下此次的obj.name
          {
            var lo=document.getElementById(last);
            lo.checked=false;
            last=obj.id;
          }
          obj.checked="checked";   //添加checked属性,以便在上边赋值为false
        }
        </script>

    后台CS

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    RadioButton rb = (RadioButton)e.Row.FindControl("RadioButton1");
                    if (rb != null)
                    {
                        rb.Attributes.Add("onclick", "single(this)");  //single(obj)为js函数 
                        rb.Enabled = false;
                    }
                }
            }

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
            {
                for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
                {
                    CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
                    RadioButton rbtn = (RadioButton)GridView1.Rows[i].FindControl("RadioButton1");
                    if (cbox.Checked == true)
                    {
                        cbox.Checked = true;
                        rbtn.Checked = false;
                        rbtn.Enabled = true;
                    }
                    else
                    {
                        rbtn.Checked = false;
                        rbtn.Enabled = false;
                    }
                }
            }

  • 相关阅读:
    委托的说明和举例
    用C#编写获取远程IP,MAC的方法
    200个Gmail邀请,要的请留下邮箱地址
    .NET中各种数据库连接大全
    .net中何有效的使用Cache
    55种网页常用小技巧(javascript) (转)
    一个WEB项目安装包,自动配置数据库,config文件和虚拟目录。。(转)
    windows xp sp2后所有更新
    C#反射实例(转)
    可扩展的应用程序:新增功能时无须重新编译
  • 原文地址:https://www.cnblogs.com/qfb620/p/1958097.html
Copyright © 2011-2022 走看看