0

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">&nbsp;
</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#を初めて使用しますが、正直なところ、ここで検索した同様の問題に対する回答は得られませんでした。

どんな助けでも大歓迎です。

4

1 に答える 1

1

サーバー側のコードは、ページが要求されたときに実行されます。別のページに投稿する (つまり、要求する) ため、コードは実行されないため、機能しません。元のページに戻ってコード ビハインドにリダイレクトすることもできますが、おそらく最も簡単な解決策は、orderconfirm.aspx を完全に削除し、すべてを元のページで行うことです。

于 2011-08-31T11:45:21.060 に答える