快速业务通道

自定义ASP.NET UpdatePanel控件的错误处理

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

先决条件

若要在您自己的开发环境中实现这些过程,您需要:

Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 速成版。

一个支持 AJAX 的 ASP.NET 网站。

服务器代码中自定义错误处理

首先,您将通过使用页面中的服务器代码自定义错误处理。

服务器代码中自定义错误处理

创建新页并切换到“设计”视图。

在工具箱的“AJAX Extensions”选项卡中,双击 ScriptManager 控件和 UpdatePanel 控件以将它们添加到页面中。

将以下控件添加到 UpdatePanel 控件中:

两个 TextBox 控件。

一个 Label 控件

一个 Button 控件。将该控件的 Text 属性设置为“计算”。

UpdatePanel 控件中的某些文本。

双击“计算”按钮,并为其事件处理程序添加下列代码:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As  System.EventArgs)
   Try
     Dim a As Int32
     a = Int32.Parse(TextBox1.Text)
     Dim b As Int32
     b = Int32.Parse(TextBox2.Text)
     Dim res As Int32 = a / b
     Label1.Text = res.ToString()
   Catch ex As Exception
     If (TextBox1.Text.Length > 0 AndAlso TextBox2.Text.Length  > 0) Then
       ex.Data("ExtraInfo") = " You can''t divide " & _
        TextBox1.Text & " by " & TextBox2.Text &  "."
     End If
     Throw ex
   End Try

End Sub

该代码包含一个 try-catch 语句。在 try 块中,该代码对在文本框中输入的值执行除法 运算。如果该运算失败,则 catch 块中的代码会将 ExtraInfo 中的额外字符串信息添加到 异常,然后不处理该异常而重新引发该异常。

切换到“设计”视图并选择 ScriptManager 控件。

在“属性”窗口的工具栏中,单击“事件”按钮,然后双击“AsyncPostBackError”框以 创建该事件的处理程序。

将以下代码添加到 AsyncPostBackError 事件处理程序中:

Protected Sub ScriptManager1_AsyncPostBackError(ByVal sender As  Object, ByVal e As System.Web.UI.AsyncPostBackErrorEventArgs)
   If (e.Exception.Data("ExtraInfo") <> Nothing) Then
     ScriptManager1.AsyncPostBackErrorMessage = _
       e.Exception.Message & _
       e.Exception.Data("ExtraInfo").ToString()
   Else
     ScriptManager1.AsyncPostBackErrorMessage = _
       "An unspecified error occurred."
   End If
End Sub

该代码将检查是否已为该异常定义 ExtraInfo 数据项。如果已定义,则将 AsyncPostBackErrorMessage 属性设置为字符串值。否则,将创建一个默认错误消息。

保存更改,然后按 Ctrl+F5 在浏览器中查看页面。

向每个文本框中添加一个大于零的数,然后单击“计算”按钮以演示成功的回发。

将第二个文本框的值更改为 0,然后单击“计算”按钮以创建一个错误条件。

浏览器显示一个消息框,该消息框中包含在服务器代码中设置的消息。

说明:

消息框的具体样式取决于您所使用的浏览器,但是消息却都是相同的。

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号