簡體   English   中英

OnServerValidate在ASP.Net C#中無法與PostBackUrl一起使用

[英]OnServerValidate Won't work with PostBackUrl in ASP.Net C#

我正在使用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#的新手,老實說,我沒有在這里找到類似問題的答案。

任何幫助將不勝感激。

服務器端代碼在請求頁面時運行。它不起作用,因為您正在回發(即請求)另一個頁面,因此該代碼永遠不會運行。 您可以將其發布回原始頁面,然后在后面的代碼中重定向,但是最簡單的解決方案可能是完全消除orderconfirm.aspx,然后在原始頁面中進行所有操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM