3

我有一个提交按钮,使用微软的ConfirmButton扩展器询问“你确定吗?”。但是,无论页面是否通过客户端验证,它都会触发。页面验证失败时,如何禁用ASP.NET AJAX ConfirmButtonExtender?

<asp:TextBox ID="TextBox1" runat="server" /> 
<asp:RequiredFieldValidator ID="RequiredFieldValidatorTextBox1" 
    runat="server" 
    ControlToValidate="TextBox1" 
    ErrorMessage="First name is required" 
    Display="Dynamic" /> 
... 
<asp:Button ID="Button1" 
    runat="server" 
    Text="Submit" 
    CausesValidation="True" /> 
<ajaxToolkit:ConfirmButtonExtender ID="ConfirmButtonExtenderButton1" 
    runat="server" 
    TargetControlID="Button1" 
    ConfirmText="Are you sure?" /> 
... 
<asp:ValidationSummary id="ValidationSummary1" 
    runat="server" 
    ShowMessageBox="True" /> 

所以,如果用户离开必填字段空白,并点击“提交”按钮。她会看到两个消息框:

一个用于验证...

ValidationSummary ShowMessageBox http://img120.imageshack.us/img120/8305/validationzn6.gif

然后一个确认...

ConfirmButtonExtender http://img228.imageshack.us/img228/678/confirmationam3.gif

(注:确定和取消都只需取消)

如果验证失败,则确认无法显示。它应该是一个或另一个。我怎样才能做到这一点?


更新:

如果我尝试使用ConfirmOnFormSubmit,然后我得到这样的警告:

验证(ASP.Net):属性 'ConfirmOnFormSubmit' 不是一个有效的 属性元素 'ConfirmButtonExtender'。

Validation (ASP.Net): Attribute 'ConfirmOnFormSubmit' is not a valid attribute of element 'ConfirmButtonExtender'. http://img382.imageshack.us/img382/1391/confirmonformsubmitow3.gif

+0

编辑:根据该网站它是有效的。尝试更新到最新版本,或者忽略智能感知,只看看发布时会发生什么。 – craigmoliver 2009-01-28 00:39:38

+1

你是怎么解决这个问题的,扎克? – Ram 2010-11-01 18:01:05

回答

3

确保ConfirmOnFormSubmit设置为TRUE在ConfirmButtonExtender。

example site

ConfirmOnFormSubmit - True如果确认对话框应该等到之前的形式提交给显示。这在ASP.NET验证器正在使用时非常有用,只有在所有验证器都通过后才能显示确认。

编辑:根据该网站它是有效的。尝试updating to the latest version,或者忽略智能感知,只看看发布时会发生什么。