当前位置:编程学习 > C#/ASP.NET >>

gridview中实现radiobutton的单选

c# 代码[csharp]
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
                RadioButton rb = (RadioButton)e.Row.FindControl("rbtSelect"); 
                if (rb != null) 
                    rb.Attributes.Add("onclick", "onClientClick('" + rb.ClientID + "','" + e.Row.RowIndex + "')");  //把选中行的RowIndex也传过去,提交后在服务器端取值时用  
            } 
        }      

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                RadioButton rb = (RadioButton)e.Row.FindControl("rbtSelect");
                if (rb != null)
                    rb.Attributes.Add("onclick", "onClientClick('" + rb.ClientID + "','" + e.Row.RowIndex + "')");  //把选中行的RowIndex也传过去,提交后在服务器端取值时用
            }
        }    
javascript代码
[javascript]
<script type="text/javascript"> 
       function onClientClick(selectedId, rowIndex) 
       { 
            //用隐藏控件记录下选中的行号  
            var hidden = document.getElementById("Hidden1").value=rowIndex; 
             
            var inputs = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input"); 
            for(var i=0; i <inputs.length; i++) 
            { 
                if(inputs[i].type=="radio") 
                { 
                    if(inputs[i].id==selectedId) 
                        inputs[i].checked = true; 
                    else 
                        inputs[i].checked = false; 
                    
                } 
            } 
       } 
     </script> 

<script type="text/javascript">
       function onClientClick(selectedId, rowIndex)
       {
            //用隐藏控件记录下选中的行号
            var hidden = document.getElementById("Hidden1").value=rowIndex;
           
            var inputs = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
            for(var i=0; i <inputs.length; i++)
            {
                if(inputs[i].type=="radio")
                {
                    if(inputs[i].id==selectedId)
                        inputs[i].checked = true;
                    else
                        inputs[i].checked = false;
                  
                }
            }
       }
     </script>

hmtl代码:
[html]
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  
                    Width="648px" Font-Size="9pt" onrowcommand="GridView1_RowCommand"  
                    DataKeyNames="id" onrowdatabound="GridView1_RowDataBound"> 
                    <Columns>      
                    <asp:TemplateField> 
                    <ItemTemplate>                     
                &nbs

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,