【问题标题】:How to Check RadioButtonList when Option Selected is Changed?更改选择的选项时如何检查 RadioButtonList?
【发布时间】:2013-06-17 15:58:09
【问题描述】:

我有一个基于 .NET/ASP.NET 的表单,它使用 RadioButtonList,默认情况下没有选择任何选项:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Rb.ascx.cs" Inherits="Rb" %>
<table><tr><td align="left">
<asp:RadioButtonList ID="radioButtonList" runat="server">
</asp:RadioButtonList>
</td><td valign="top">
<asp:RequiredFieldValidator ID="radioButtonListValidator" runat="server" ControlToValidate="radioButtonList" ErrorMessage=": Please select an option." Text="*" ValidationGroup="validate">
</asp:RequiredFieldValidator>
</td></tr>
</table>

对于列表中的一个选项,一旦被选中我想生成一个警告消息框(而不是使用某种描述标签或验证错误消息)。据我所知,没有像 _SelectChanged 这样的事件处理程序。我想知道如何实现这样的功能来获得这样的东西(下面是半伪代码,因为我不确定如何编写我想要的代码,因为我想要的似乎缺乏事件处理程序):

public override void radioButtonList_SelectionChanged(Object sender, EventArgs e)
{
    if(radioButtonList.SelectedItem == "Option 2") //Where 'Option 2' is displayed on the actual form next to the radio button
    {
        Messagebox.Show("Warning: Selecting this option may release deadly neurotoxins");
    }
}

【问题讨论】:

    标签: asp.net forms .net-4.0 radio-button radiobuttonlist


    【解决方案1】:

    正确的方法是检查列表控件上所选项目的Value 属性。 你可以使用SelectedValue 属性,试试这样:

    if(radioButtonList.SelectedValue == "Option 2")
    {
       Messagebox.Show("Warning: Selecting this option may release deadly neurotoxins")
    }
    

    您也可以使用SelectedItem.Text 属性进行检查。

    if(radioButtonList.SelectedItem.Text == "Option 2")
    {
       Messagebox.Show("Warning: Selecting this option may release deadly neurotoxins")
    }
    

    如果您在 asp.net 上,则没有 Messagebox.Show,您应该使用 javascript 警报。

    【讨论】:

    • 代码会去哪里?页面加载?这不会只在用户单击表单的峰会按钮(进而触发页面加载)后才引起警报吗?
    • 你需要在哪里做这个检查?
    • 我希望用户从单选按钮列表中选择一个选项后立即进行检查(因此我最初希望使用某种事件监听器)。
    【解决方案2】:

    试试这个。希望对你有帮助。

    if(radioButtonList.SelectedValue == "Option 2")
    {
    string script = "alert('Warning: Selecting this option may release deadly neurotoxins');";
       ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script, true);
    }
    

    【讨论】:

    • 这在 Page_Load 中会去哪里?那岂不是只有在通过单击峰会表单按钮触发 Page_Load 时才生成警报,而不是在用户选择“选项 2”时“立即”生成警报?
    • 在 radioButtonList_SelectionChanged 事件中写入。
    【解决方案3】:

    你可以使用 jquery 来解决这个问题。这要容易得多。这是一个示例代码。

    $(document).ready(function () {
       $("#<%=radioButtonList.ClientID%> input").change(function(){
              alert('test');
       });
    });
    

    【讨论】:

    • 不幸的是,我以前从未在 jquery 领域工作过。您的示例代码似乎只对更改进行操作。我希望它检查所选单选按钮列表的值是否等于某个值(例如选项 2),然后发出警报。我对 jquery 进行了一些研究,但还没有弄清楚如何在语法上与 C#/ASP.NET 的 radioButtonList.SelectedValue == "Some Value" 同义,如果不是太麻烦的话,你能把 jquery 充实一点吗?
    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多