<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" />
我正在使用自定义验证程序(服务器端代码)检查重复项 如果服务器端自定义验证程序显示错误,则链接按钮不得重定向到页面。
我需要在验证器触发时停止发回。
答案 0 :(得分:1)
如果要阻止回发,则应通过向验证程序控件添加自定义javascript验证功能来执行验证客户端。这在this blog post。
中有所描述如果您的验证逻辑只能在服务器上运行,则必须让回发发生,但包装您不希望运行的所有代码,例如:一个
if (Page.IsValid) { ... }
答案 1 :(得分: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
}
})
});