ASP.Net:使用 C# 验证单选按钮输入
ASP.Net: Validating Radio Button Input with C#
我 运行 遇到了为我的单选按钮列表创建自定义验证器输入的问题。我已经把所有东西都编码出来了,一切都没有问题。当应该进行验证时,什么也没有发生。我的其他验证工作正常。
这是我的 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);
}
任何人都可以发现我可能遗漏的任何东西来指导我找到解决方案吗?
尝试两件事:
this.SalaryPaidByEFT.SelectedItem.Text == "Yes"
或
args.Value == "Yes"
您是否缺少对 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 -"Add a test in your ASP.NET Web page code to check for validity. For details, see How to: Test Validity Programmatically for ASP.NET Server Controls."
我 运行 遇到了为我的单选按钮列表创建自定义验证器输入的问题。我已经把所有东西都编码出来了,一切都没有问题。当应该进行验证时,什么也没有发生。我的其他验证工作正常。
这是我的 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);
}
任何人都可以发现我可能遗漏的任何东西来指导我找到解决方案吗?
尝试两件事:
this.SalaryPaidByEFT.SelectedItem.Text == "Yes"
或
args.Value == "Yes"
您是否缺少对 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 -"Add a test in your ASP.NET Web page code to check for validity. For details, see How to: Test Validity Programmatically for ASP.NET Server Controls."