更改单选按钮更改状态时的复选框文本

时间:2011-12-29 13:49:22

标签: asp.net

我有asp.net网页,我有单选按钮和复选框。 当单选按钮状态发生任何变化时,我需要更改复选框的文本。

请建议我如何实现这一目标......

我尝试了单选按钮的状态改变事件&我已经设置了复选框的文本属性。 这是我在后台.cs文件中完成的 但它没有发生。

请建议。 感谢

4 个答案:

答案 0 :(得分:1)

您需要设置RadioButton的属性AutoPostBack=true和处理程序CheckedChanged事件。

示例:

<asp:RadioButton 
              ID="RadioButton1" 
              runat="server" 
              AutoPostBack="True" 
              GroupName="Group1" 
              oncheckedchanged="RadioButton1_CheckedChanged" />
 <asp:RadioButton 
              ID="RadioButton2" 
              runat="server" 
              AutoPostBack="True" 
              GroupName="Group1" 
              oncheckedchanged="RadioButton1_CheckedChanged" />
 <asp:CheckBox ID="CheckBox1" runat="server" />

代码背后:

 protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox1.Text = RadioButton1.Checked ? "Checked" : "Not Checked";
    }

答案 1 :(得分:1)

您可以将AutoPostBack属性设置为true。这会将JavaScript添加到客户端,从而自动增加回发事件。

<强> ASPX

<asp:RadioButton ID="RadioButton1" runat="server" AutoPostBack="True" 
       oncheckedchanged="RadioButton1_CheckedChanged" />
<asp:CheckBox ID="CheckBox1" runat="server" />

<强>的.cs

protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
    CheckBox1.Text = "some text...";
}

答案 2 :(得分:0)

根据您提供的信息,我建议您使用Javascript来完成此操作,因为它可以极大地改善用户体验。如果您能提供更多详细信息,我可以为您提供更多信息。

根据您的评论进行修改

标记:

<asp:RadioButtonList ID="RadioButtonList1" runat="server">
    <asp:ListItem Value="RadioButton1">RadioButton1</asp:ListItem>
    <asp:ListItem Value="RadioButton2">RadioButton2</asp:ListItem>
</asp:RadioButtonList>

<asp:CheckBox ID="Checkbox1" runat="server" Text="RadioButton1" />

javascript:

$(function () {
    $("#<%=RadioButtonList1.ClientID %> input:radio").change(function () {
        $("#<%=Checkbox1.ClientID %>").next().text($("#<%=RadioButtonList1.ClientID %> input:radio:checked").val());
    });
});

RadioButtonList将使用<Table> ID在HTML中生成RadioButtonList1。 javascript选择器选择该表中的所有单选按钮。虽然这将满足您的要求,但是发布到服务器是另一回事。

答案 3 :(得分:-1)

我认为通过使用jquery来实现任务将通过阻止回发来提高性能。

    <script> 
        $(function() { 
            $("input[name='<%=RadioButton1.ClientID %>']").change(function(){
            $("#<%= CheckBox1.ClientID%>").next("label:first").text("New Text"); 
            });
        });  
    </script> 

假设单选按钮的ID为“RadioButton1”,复选框为ID“CheckBox1”。