在asp.net c#中使用javascript从具有单选按钮的gridview列中获取值
本文关键字:单选按钮 gridview 获取 net asp javascript | 更新日期: 2023-09-27 18:10:40
这是我的gridview与单选按钮
<asp:GridView ID="GridView1" ShowHeader="False" runat="server" cellpadding="5"
cellspacing="1" ForeColor="#333333" GridLines="None"
OnRowDataBound="GridView1_RowDataBound"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Width="512px">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="rbt" onclick="javascript:Selrdbtn(this.id)" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
它调用这个脚本,它帮助只选择一个单选按钮
<script language="javascript" type="text/javascript">
function Selrdbtn(id) {
var rdBtn = document.getElementById(id);
var grid = document.getElementById('<%= GridView1.ClientID %>');
var List = grid.getElementsByTagName("input");
for (i = 0; i < List.length; i++) {
if (List[i].type == "radio" && List[i].id != rdBtn.id) {
List[i].checked = false;
}
}
}
</script>
我如何获得行值,其中单选按钮被选中?
要获取选中复选框的行值,您需要首先执行以下操作:在复选框控件中添加两个属性,如下所示:
<asp:RadioButton ID="rbt" runat="server" OnCheckedChanged="rbt_CheckedChanged"
AutoPostBack="true" onclick="javascript:Selrdbtn(this.id);" />
OnCheckedChanged
属性将在您的代码后面触发一个名为rbt_CheckedChanged
的事件,AutoPostBack
将在您的控件上执行操作。
protected void rbt_CheckedChanged(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
if ((sender as CheckBox).ClientID == (row.FindControl("rbt") as CheckBox).ClientID)
{
string checkboxValue = (row.FindControl("rbt") as CheckBox).Checked.ToString();
string textboxValue = (row.FindControl("TextBox1") as TextBox).Text;
// you could get all of the selected row's values the same as above code.
break; //break the loop once it finds the result
}
}
}
在上面的代码中,我放置了两个示例控件,向您展示如何获取所选行的值,以便您可以自己获取任何类型的控件值。
欢呼