65.9K
CodeProject 正在变化。 阅读更多。
Home

在ASP.NET 2.0中显示消息框的简易方法

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.65/5 (12投票s)

2006年10月16日

4分钟阅读

viewsIcon

92469

downloadIcon

826

本文介绍一种在ASP.NET 2.0项目中快速简便地显示消息框的方法。

引言

本文介绍一种在ASP.NET 2.0项目中快速简便地显示消息框的方法。此方法可用于动态生成并向用户显示错误和状态消息。

本文包含一个示例 Web 应用程序,演示了此方法的应用。

图1:示例 Web 应用程序

图2:显示错误信息的示例消息框

入门

首先,解压缩下载的文件并打开提供的项目。项目中包含一个用VB.NET编写的简单的ASP.NET 2.0应用程序;该Web应用程序包含单个网页(Default.aspx)。此网页的唯一作用是演示消息框子例程的使用。

在IIS中创建一个虚拟目录,并将其指向此Web应用程序,然后在Visual Studio 2005中打开项目。

代码:Default.aspx

打开default.aspx的代码隐藏页面并检查其内容。该类非常简单,只包含MessageBox子例程和一些用于测试该子例程的控件事件处理程序。

检查代码时,您会注意到该类没有导入任何库,并且只包含少量非常基本的代码。为了演示的目的,我包含了五个按钮事件处理程序,每个处理程序对MessageBox子例程执行不同的操作;这些按钮将演示直接向子例程发送字符串、向子例程传递错误消息、向子例程传递字符串生成器的内容以及向子例程传递日期和时间。

在可行的应用程序中使用此代码时,MessageBox子例程将是回发后向用户显示错误和状态消息的好方法。由于此方法不需要开发人员预先知道消息的内容,因此它非常适合显示任何类型的动态生成的文本。

主要关注点是MessageBox子例程,其内容如下:

Private Sub MessageBox(ByVal msg As String)
    ' define a javascript alertbox containing

    ' the string passed in as argument


    ' create a new label

    Dim lbl As New Label()

    ' add the javascript to fire an alertbox to the label and

    ' add the string argument passed to the subroutine as the

    ' message payload for the alertbox

    lbl.Text = "<script language="'javascript'">" & Environment.NewLine & _

               "window.alert('" + msg + "')</script>"

    ' add the label to the page to display the alertbox

    Page.Controls.Add(lbl)
End Sub

检查代码时,您会注意到子例程接受一个字符串作为参数,并将传递给子例程的字符串直接传递给JavaScript alert框以进行显示。为了显示警报,子例程创建标签的新实例,并将相应的JavaScript命令传递给标签的text属性。标签当然会呈现传递给控件text属性的任何脚本或html命令,因此,当标签在子例程的最后一行添加到页面时,警报框将立即触发,并将显示传入的消息。

由于这发生在回发中,标签不会继续累积在页面中,而是在每次调用MessageBox子例程后只添加一个标签,并且在任何给定时间页面源中只存在一个标签。这可以通过在浏览器中运行应用程序时检查网页的源代码来验证。

该应用程序使用一系列五个按钮事件处理程序来测试子例程;检查代码隐藏页面以查看所有这些处理程序的使用情况。我只会在此文档中显示一个处理程序,即错误消息示例;其代码如下:

Protected Sub Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Button2.Click
    Try
        Dim r As Integer
        Dim x As Integer = 100
        Dim y As Integer = 0
        r = x / y
        MessageBox(r.ToString())
    Catch ex As Exception
        MessageBox("Error:  " & ex.Message.ToString() & "  :: " & _
        ex.StackTrace())
    End Try
End Sub

检查此代码时,请注意已添加了Try Catch块,并且在Try部分中创建了一个除以零错误。Catch块使用MessageBox子例程显示包含一段文本、错误消息和错误堆栈跟踪的格式化错误消息。当此按钮事件处理程序触发时,应用程序将尝试执行Try块中的计算;此尝试将引发异常,当引发异常时,相关的错误消息将通过MessageBox子例程显示给最终用户。

摘要

本文档中提供的示例和相关的Web应用程序用于展示构建子例程的一种方法,该子例程可用于向用户显示动态消息内容。还有许多其他方法可以生成和向用户显示警报框,但是,这是一种方便完成任务的方法。

© . All rights reserved.