gridView.ASP.NET C#中互斥选择Radiobutton

时间:2011-06-29 07:32:23

标签: c# asp.net gridview radio-button

    <asp:TemplateField HeaderText="Select One">

    <ItemTemplate>
    <asp:RadioButton ID="RadioButton1" runat="server" />

    </ItemTemplate>

    </asp:TemplateField> 

aspx.cs

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (GridViewRow di in GridView1.Rows)
    {
        RadioButton rad = (RadioButton)di.FindControl("RadioButton1");

        if (rad.Checked&&rad!=null)
        {
            s = di.Cells[1].Text;
        }

    }

    Response.Redirect("applicants.aspx?form=" +s);

}

我正在选择使用此选择的行,但我在此处遇到问题我希望用户只能选择一个radiobutton,但允许选择所有radiobutton s曾经。你可以帮我解决这个问题。 请。enter image description here

5 个答案:

答案 0 :(得分:3)

也许我在派对上太晚了,但这样做会有所帮助, check out here......

这可能对将来观看此答案的人有用。

答案 1 :(得分:1)

在ASP页面中,您需要将GroupName属性设置为对所有单选按钮都相同,例如:

<asp:RadioButton ID="RadioButton1" runat="server" GroupName="RadioGroup" />

答案 2 :(得分:0)

好吧,您可以使用以下代码 首先,您应该定义组名。以下代码将起作用

 <asp:RadioButton ID="RadioButton1" OnCheckedChanged="rbSelector_CheckedChanged" AutoPostBack="true" GroupName="Apply" runat="server"></asp:RadioButton>

<强> C#

protected void rbSelector_CheckedChanged(object sender, System.EventArgs e)
{
    foreach (GridViewRow oldrow in GridView2.Rows)
    {
        ((RadioButton)oldrow.FindControl("RadioButton1")).Checked = false;
    }


    //Set the new selected row
    RadioButton rb = (RadioButton)sender;
    GridViewRow row = (GridViewRow)rb.NamingContainer;
    ((RadioButton)row.FindControl("RadioButton1")).Checked = true;
}

答案 3 :(得分:0)

您可以尝试使用此链接选择网格中的单个单选按钮:http://www.c-sharpcorner.com/uploadfile/krishnasarala/select-single-radio-button-in-gridview-in-Asp-Net/

答案 4 :(得分:0)

使用GroupName属性本身不起作用,每个单选按钮仍将获得唯一的名称属性,因为它们位于网格的不同行中。

一种选择是使用Literal控件(example)手动发出单选按钮标记。这样可以轻松地在客户端对单选按钮进行分组,但需要更多的工作来确定在回发时选择了哪个按钮。

当我需要这种行为时,我发现将单选按钮保持为服务器端控件更容易,并且只使用jQuery强制执行按钮组。如您所示,将RadioButton放入TemplateField中,然后添加此代码以在选中其中一个时取消选中所有其他按钮:

$(document).ready(function () {
    // could also pass in a unique ID selector
    createManualRadioButtonGroupForGridView(".myGridViewClass");
});

function createManualRadioButtonGroupForGridView(gridViewSelector) {
    $(gridViewSelector + " input[type=radio]").change(function () {
        var checkedRadioButton = this;
        $(gridViewSelector + " input[type=radio]").each(function (e) {
            if (this !== checkedRadioButton) {
                $(this).prop("checked", false);
            }
        });
    });
}