2010-11-01 66 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) { ... }