随笔 - 103  文章 - 0 评论 - 363 trackbacks - 33
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

☆ 有些事現在不做,就一輩子都不會做了 ☆

与我联系

搜索

 

常用链接

留言簿(1)

我参加的小组

我的标签

随笔分类

随笔档案

部落格

最新评论

阅读排行榜

评论排行榜

使用 VB6 或 VB.NET 的开发人员,一定常会使用到 MsgBox 这个函式来显示讯息,如果使用 VB.NET 在开发 ASP.NET 程序,会发现似乎 MsgBox 这个函式好像可以使用,就直接使用 MsgBox 来显示讯息。

 

MsgBox("这是讯息")

 

在 VS 开发环境中执行程序,MsgBox 函式好像也可以正常显示讯息;可是一旦网站发布出去后,就会发现 MsgBox 函式失效了。这是什么原因呢?MsgBox 函式是伺服端的语言,而客户端只能透过浏览器解析 HTML 及 JavaScript,所以 MsgBox 函式是无法使用在 ASP.NET 的程序,只能在开发侦错时使用。在 ASP.NET 中,要在客户端显示讯息正确的方法是要使用 RegisterStartupScript 方法来输出 JavaScript 的 alert 函式。

 

ScriptManager.RegisterStartupScript(MeMe.GetType(), "alert""alert('这是讯息')"True)    
 
或    
   
Me.ClientScript.RegisterStartupScript(Me.GetType(), "alert""alert('这是讯息')"True)

 

是不是觉得在 ASP.NET 中要显示讯息麻烦多了,能否让 ASP.NET 中也可以使用 MsgBox 来显示讯息呢?其实方法很简单,就是自己写一个 MsgBox 方法就好了,就可以延用以前习惯的 MsgBox 来显示讯息。我们在 BasePage 中撰写 MsgBox 方法,这个 MsgBox 方法还处理消息正文中含「单引号」及「换行」的部分,将这些特殊字符串转换为对应的 JavaScript 跳脱字符。

 

    ''' <summary>
    
''' 弹出提示讯息。
    
''' </summary>
    
''' <param name="Message">消息正文。</param>
    Public Sub MsgBox(ByVal Message As String)
        
Dim sScript As String
        
Dim sMessage As String

        sMessage 
= Strings.Replace(Message, "'""\'"'处理单引号
        sMessage = Strings.Replace(sMessage, vbNewLine, "\n"'处理换行
        sScript = String.Format("alert('{0}');", sMessage)
        ScriptManager.RegisterStartupScript(
MeMe.GetType(), "alert", sScript, True)
    
End Sub

 

所有继承 BasePage 的页面都可以使用 MsgBox 方法来显示讯息。

 

    Protected Sub Button1_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles Button1.Click
        
Dim sMessage As String

        sMessage 
= "alert 讯息换行测试" & vbNewLine & "测试'单引号' "
        
MsgBox(sMessage)
    
End Sub

 

 

備註:處理 JavaScript 的相關函式,筆者比較建議使用「撰寫自用的 ScriptManager 來管理用戶端指令碼」一文中提供的方式來處理,所以可以將 MsgBox 方法撰寫在該文中的 TBScriptManager 類別。

posted on 2008-08-01 07:54 jeff377 阅读(602) 评论(7)  编辑 收藏 网摘 所属分类: ASP.NET 基础

FeedBack:
#1楼  2008-08-01 10:00 预备役中尉      
#2楼  2008-08-01 10:15 键客      
为了这么个功能,不必用继承吧,写个静态类就行了
  回复  引用  查看    
#3楼  2008-08-01 16:53 ay [未注册用户]
点“确定”后按F5会不会又弹出来呢?
  回复  引用    
#4楼  2008-08-01 19:25 clefoo      
哥们台湾来的?
这种东西都拿出来,太瞧不起我们了吧
  回复  引用  查看    
#5楼  2008-08-02 12:12 李贵庆      
@clefoo
话不要这样说,就像在你理解了hello word程序以后,网络上就不应该出现这个程序一样,毕竟还有更多未来的程序员需要理解和学习。

而且,Blog这种东西,不一定写的都是给别人看的。写一些东西可以当自己记个笔记。如果你很牛了,完全可以路过,我想博主也不是专门写给你看的,或者你一定要看这篇文章。
  回复  引用  查看    
#6楼  2008-08-08 17:44 like%'远远'%      
顶楼上的
  回复  引用  查看    
#7楼  2008-08-24 12:08 Szunzer [未注册用户]
试没试过显示两边alert是什么效果??
Dim sMessage As String
sMessage = "alert 讯息换行测试" & vbNewLine & "测试'单引号' "
MsgBox(sMessage)
sMessage = "再来一下alert 讯息换行测试" & vbNewLine & "测试'单引号' "
MsgBox(sMessage)

???
  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:


相关搜索:
alert javascript MsgBox

相关链接: