我正在使用 CustomValidator 验证表单,以便为文本框的背景着色。
当我单击表单的链接按钮时,不会调用 CustomValidator 背后的代码。但是,当我删除 PostBackUrl="orderconfirm.aspx" 时,代码确实被调用并且工作正常。
页面:
<asp:TextBox ID="txtBillingLastName" Name="txtBillingLastName" runat="server">/asp:TextBox>
<asp:CustomValidator
ID="CustomValidatorLN" runat="server"
ControlToValidate="txtBillingLastName"
OnServerValidate="CustomValidatorLN_ServerValidate"
ValidateEmptyText="True">
</asp:CustomValidator>
<asp:LinkButton
ID="OrderButton" runat="server"
PostBackUrl="orderconfirm.aspx"
onclick="OrderButton_Click">
</asp:LinkButton>
后面的代码:
protected void CustomValidatorLN_ServerValidate(object sender, ServerValidateEventArgs args)
{
bool is_valid = txtBillingLastName.Text != "";
txtBillingLastName.BackColor = is_valid ? System.Drawing.Color.White : System.Drawing.Color.LightPink;
args.IsValid = is_valid;
}
我对 .net/c# 很陌生,老实说,我没有在这里找到类似问题的答案。
任何帮助将不胜感激。