繁体   English   中英

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

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

这是我的带有单选按钮的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将对控件执行操作。

然后,您需要在util后面的代码上循环浏览网格视图 ,然后在网格视图中找到选定的值,并同时获取控件的其余值。

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

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

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM