在asp.net c#中使用javascript从具有单选按钮的gridview列中获取值

Get value from gridview column that has radio button using javascript in asp.net c#

本文关键字:单选按钮 gridview 获取 net asp javascript      更新时间:2023-09-26

这是我的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将在您的控件上执行操作。

然后你需要在你的grid-view代码中循环,直到你在grid-view中找到选定的值,并同时获得控件的其余值。
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
        }
    }
}

在上面的代码中,我放置了两个示例控件,向您展示如何获取所选行的值,以便您可以自己获取任何类型的控件值。

欢呼