2010-11-01 64 views
0
<asp:LinkButton ID="lbnImages" runat="server" CssClass="link" 
    PostBackUrl="AddImage.aspx" CausesValidation="True" 
    ValidationGroup="Save">Images</asp:LinkButton> 
<asp:CustomValidator ID="cstval" runat="server" ControlToValidate="txtName" 
    ValidationGroup="Save" ErrorMessage ="Duplicate name" 
    OnServerValidate="Project_validation" /> 

我檢查了使用自定義的驗證(服務器端代碼) 如果服務器端自定義驗證顯示錯誤的鏈接按鈕不能重定向到頁面重複。asp.net鏈接按鈕防止回傳

當驗證器啓動時,我需要停止回發。

+0

什麼是你的問題? – egrunin 2010-11-01 10:03:01

+0

我需要在驗證器啓動時停止回發。 – skamale 2010-11-01 10:08:25

+0

我想你想檢查Serverside中的東西,如果它失敗了,它必須留在同一頁面上? – kbvishnu 2010-11-01 10:20:41

回答

0

我看你是檢查重複,唯一的方法來驗證它而不會導致回發是做一個ajax調用。

做一些服務的話,可以檢查它是否是重複的或者沒有,那麼如果它不是有效的停止它。使用jQuery語法:

$("save_button").click(function(e){ 
    $.ajax({ 
     async: false, // will finish this request before executing anything else 
     url: "validation_page", 
     type: "POST", 
     data: ({name: "value from a field"}), 
     success: function(msg){ 
      if (msg != "ERROR") // whatever msg is not valid 
       e.preventDefault(); // will not do the postback 
     } 
    }) 
}); 
1

如果要防止回發,則應該通過添加自定義JavaScript驗證功能,您的驗證控件做驗證客戶端。這在this blog post中描述。

如果您的驗證邏輯,只能在服務器上運行,你就必須讓回發發生,但包裹所有要不要在例如運行代碼一個

if (Page.IsValid) { ... }