【问题标题】:ASP.Net: Validating Radio Button Input with C#ASP.Net:使用 C# 验证单选按钮输入
【发布时间】:2016-05-27 00:03:23
【问题描述】:

我在为我的单选按钮列表创建自定义验证器输入时遇到问题。我已经编写了所有代码,并且一切运行都没有问题。当验证应该发生时,什么都没有发生。我的其他验证工作正常。

这是我的 HTML 代码:

<asp:RadioButtonList ID="SalaryPaidByEFT" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" CssClass="width-100 radio">
    <asp:ListItem Text="Yes" Value="true"></asp:ListItem>
    <asp:ListItem Text="No" Value="false"></asp:ListItem>
    <asp:ListItem Text="Not Applicable" Value="null" Selected="True"></asp:ListItem>
</asp:RadioButtonList>
<asp:CustomValidator ID="cvSalaryPaidByEFT" runat="server"
    ErrorMessage="Salary Must Be Paid By EFT" ControlToValidate="SalaryPaidByEFT"
    OnServerValidate="cvSalaryPaidByEFT_ServerValidate" CssClass="has-error"
    Display="Dynamic"></asp:CustomValidator>

这是我的 C# 代码:

protected void cvSalaryPaidByEFT_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = (this.SalaryPaidByEFT.SelectedIndex == 0);
}

谁能发现我可能缺少的任何东西来指导我找到解决方案?

【问题讨论】:

  • OnServerValidate="cvSalaryPaidByEFT_ServerValidate" 并且方法的名称与 cvHasOwnIncomeAccount_ServerValidate 不匹配。会不会是这个问题?
  • 编辑了我的问题,仍然收到同样的问题。

标签: c# asp.net validation radiobuttonlist


【解决方案1】:

您是否错过了对 this.Validate() 方法的调用并检查页面的 IsValid 属性。来自 msdn 示例:

if (this.IsPostBack)
{
    this.Validate();
    if (!this.IsValid)
    {
        string msg = "";
        // Loop through all validation controls to see which
        // generated the errors.
        foreach (IValidator aValidator in this.Validators)
        {
            if (!aValidator.IsValid)
            {
                msg += "<br />" + aValidator.ErrorMessage;
            }
        }
        Label1.Text = msg;
    }
}

您可能缺少自定义验证器的this msdn 指令中的第 4 步。

步骤 4 -“在 ASP.NET 网页代码中添加测试以检查有效性。有关详细信息,请参阅如何:以编程方式测试 ASP.NET 服务器控件的有效性。”

【讨论】:

    【解决方案2】:

    尝试两件事:

    this.SalaryPaidByEFT.SelectedItem.Text == "Yes"
    

    args.Value == "Yes"
    

    【讨论】:

    • 对不起,我在复制我的错误时出错了,它仍然无法正常工作。
    • 您希望何时进行验证?
    • 提交后,就像我的必填字段验证器一样工作
    • 好的,那么您是否在代码后面的某处调用 Page.Validate() 方法,并且提交按钮是否将 CausesValidation 设置为 true?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2013-01-24
    相关资源
    最近更新 更多