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

适用于 ASP.NET 的 Web 消息框

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.46/5 (6投票s)

2008年2月9日

CPOL

1分钟阅读

viewsIcon

53651

downloadIcon

484

一个用于 ASP.NET 的消息框,用于将服务器消息发送给用户。

引言

消息框是基于 Windows 应用程序中一个非常有用的控件。对于基于 Web 的应用程序,您在客户端有类似的控件。但是,当您想将服务器端消息传达给用户时,没有现成的消息框控件。本文介绍了一种编写消息框以将服务器端消息传回给用户的一种简单方法。

使用代码

首先,我在 ASP.NET 网站中添加了一个 Module

Imports Microsoft.VisualBasic

Public Module Module1

    Public Function Msg(ByVal str As String, ByVal supportVB As Boolean, _
                        ByVal style As MsgBoxStyle) As String

        If supportVB Then

            str = str.Replace("""", "'")
            Return "<script language=""vbscript"" type=""text/vbscript"" >MsgBox """ & _
                   str & """," & CInt(style).ToString & ", ""Message Box""</script>"

        Else
            str = str.Replace("'", """")
            Return "<script>window.alert('" & str & "')</script>"        
       End If
    End Function

    Public Function Msg(ByVal str As String) As String
        Return Msg(str, False, MsgBoxStyle.Exclamation)
    End Function

End Module

上面的函数检查浏览器是否支持 VBScript。如果支持,我使用 VBScript。VBScript 的消息框比 JavaScript 的消息框功能更强大。它允许您控制消息的显示图标。您可能不希望在您的成功消息中使用感叹号。

为了在网站中使用我的消息框,我还添加了一个名为 lblMessageLabel 控件到网页的底部。lblMessageEnableViewState 设置为 False

<label id="lblMessage" enableviewstate="False" runat="server" />

现在,您可以在网页中使用消息框,如下所示

Try
    'your server action
    lblMessage.Text = Msg("Success Message", _
                      Request.Browser.VBScript, MsgBoxStyle.Information)
Catch ex As Exception
    lblMessage.Text = Msg(ex.Message)
End Try

关注点

请注意,您必须将 lblMessageEnableViewState 设置为 False。ASP.NET 默认将其设置为 True。如果将其设置为 True,则消息将在下一次回发时保留。这意味着即使您更正了错误,消息也会继续显示。

代码

您可以从 http://download.biswaretech.com/resources.aspx?file=web_Msgbox.zip 下载我的代码的最新版本。

© . All rights reserved.