当页面验证失败时,如何禁用我的 ASP.NET AJAX ConfirmButtonExtender?

Posted

技术标签:

【中文标题】当页面验证失败时,如何禁用我的 ASP.NET AJAX ConfirmButtonExtender?【英文标题】:How do I disable my ASP.NET AJAX ConfirmButtonExtender when page validation fails? 【发布时间】:2010-10-03 19:19:43 【问题描述】:

我有一个使用 Microsoft 的 ConfirmButton 扩展器的提交按钮来询问“你确定吗?”。但是,无论页面是否通过客户端验证,它都会触发。

<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

(注意:OK 和 Cancel 都只是取消。)

如果验证失败,显示确认是没有意义的。它应该是其中之一。我该怎么做?


更新:

如果我尝试使用 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

【问题讨论】:

编辑:根据该网站,它是有效的。尝试更新到最新版本,或者忽略智能感知,看看发布时会发生什么。 扎克,你是怎么解决这个问题的? 【参考方案1】:

确保 ConfirmOnFormSubmit 在 ConfirmButtonExtender 上设置为 TRUE。

来自example site:

ConfirmOnFormSubmit - 如果确认对话框应该等到表单提交显示之前,则为真。这在使用 ASP.NET 验证器时很有用,并且只有在所有验证器都通过后才会显示确认。

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

【讨论】:

谢谢。这似乎是正确的答案,但它不起作用。我已经更新了问题。

以上是关于当页面验证失败时,如何禁用我的 ASP.NET AJAX ConfirmButtonExtender?的主要内容,如果未能解决你的问题,请参考以下文章

在ASP.NET中是否有一个事件在Windows身份验证日志中失败? (记录Windows身份验证失败的详细信息)

ASP.NET MVC 页面验证失败(值无效。)

在 asp.net 控件上动态禁用验证

ASP.NET 验证失败时更改文本框的 css 类

asp.net 使用 Javascript 禁用/启用验证器

启用使用 jquery 禁用 asp.net 验证控件