gridview中实现radiobutton的单选示例

前端技术 2023/09/06 .NET
c# 代码
复制代码 代码如下:

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代码
复制代码 代码如下:

<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代码:
复制代码 代码如下:

<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>
<asp:RadioButton ID=\"rbtSelect\" runat=\"server\" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=\"文件名\">
<ItemTemplate>
<asp:LinkButton runat=\"server\" ID=\"lbtDirName\" CommandName=\"Change\" CommandArgument=\'<%#Container.DataItemIndex %>\'>
<%#Eval(\"AA\") %>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField=\"BB\" HeaderText=\"字段1\" />
<asp:BoundField DataField=\"CC\" HeaderText=\"字段2\" />
<asp:BoundField DataField=\"DD\" HeaderText=\"字段3\" />
<asp:BoundField DataField=\"EE\" HeaderText=\"字段4\" />
</Columns>
</asp:GridView>

<input id=\"Hidden1\" type=\"hidden\" runat=\"server\"/>

本文地址:https://www.stayed.cn/item/17316

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。