CustomValidatorを使用してフォームを検証しているので、テキストボックスの背景に色を付けることができます。
フォームのリンクボタンをクリックしても、CustomValidatorの背後にあるコードが呼び出されません。ただし、PostBackUrl = "orderconfirm.aspx"を削除すると、コードが呼び出されて正常に機能します。
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#を初めて使用しますが、正直なところ、ここで検索した同様の問題に対する回答は得られませんでした。
どんな助けでも大歓迎です。