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;
                    }
                }
            }

  • 相关阅读:
    Druid数据库连接池源码分析
    彻底理解Java的Future模式
    CountDownLatch与CyclicBarrier
    Semaphore实现原理分析
    ThreadLocal类分析
    Atomic类和CAS
    synchronized VS Lock, wait-notify VS Condition
    Klass与Oop
    JVM类加载以及执行的实战
    123
  • 原文地址:https://www.cnblogs.com/qfb620/p/1958097.html
Copyright © 2011-2022 走看看