[英]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">
</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.