写了静态类 msgbox 如下
    Public Shared Sub MsgBox(ByVal Pl As System.Web.UI.Page, 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(Pl, Pl.GetType(), "alert", sScript, True)
    End Sub
然后在网页中调用!
 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
       
 Dim mCon As New MicrocodeSqlClass.MCDb("sa", "wmkj", "pos", ".")
        mCon.OpenDBConnection()
        If mCon.Connection.State = Data.ConnectionState.Open Then
            AspToolsV1.MsgBox(Me, "数据库连接成功!!")
            AspToolsV1.MsgBox(Me, "数据库连接成功!!1")
            AspToolsV1.MsgBox(Me, "数据库连接成功!!2")
        Else
            AspToolsV1.MsgBox(Me, "数据库连接失败!!")
        End If
        Dim sCount As String
        sCount = mCon.RunOneOne("select count(spno) from sc0", "N")
        AspToolsV1.MsgBox(Me, "发现数据(语句为 select count(spno) from sc0:)" + sCount)
    End Sub
为什么只显示第一次的alert??其他的都不显示!!
还有!
我用以下这种方法写showmsg !
    Shared Sub ShowMsg(ByVal Message As String)
        System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE=""JavaScript"">" & vbCrLf)
        System.Web.HttpContext.Current.Response.Write("alert(""" & Message & """)" & vbCrLf)
        System.Web.HttpContext.Current.Response.Write("</SCRIPT>")
    End Sub
调用的时候好用可以同时显示多个alert!可以原本居中的页面全变成靠左对其啦
怎么回事??

解决方案 »

  1.   

    为什么只显示第一次的alert??其他的都不显示!! 
    操作js是页面前端事件了,你设断点调试下,就会发现弹出窗口要等后面的代码全执行完后才弹出的
    ---
    ScriptManager.RegisterStartupScript(Pl, Pl.GetType(), "alert", sScript, True) 改成
    ScriptManager.RegisterStartupScript(Pl, Pl.GetType(), null, sScript, True) 
    Response.Write是asp.net 1.1的用法 ,如果用了它页面中的css样式就不起作用了,asp.net 2.0中还是用ScriptManager.RegisterStartupScript吧
      

  2.   

    为什么只显示第一次的alert??其他的都不显示!! 
    =========================================
    就是因为你 ScriptManager.RegisterStartupScript(Pl, Pl.GetType(), "alert", sScript, True) 
    定死了一个"alert",名字一样的话就单单显示第一个了。
      

  3.   

    谢谢回复!试过了 还是不行啊,改成你说的那个方式也是只能显示第一个Alert 其他的都不能显示,只能注册第一个 alert!
    谁写的msgbox类可以在一个方法中连续显示多个alert??
      

  4.   

    是的,原来就是名称的事!名字定死了所以显示第一个了,改为Null,nothing ,"" 都不起作用!加上个参数吧,真够呛,注册原来还需要名字啊!原来的 msgbox("XXXX") 现在需要这样啦 msgb0x(me,"xxx",sid).
    结贴!!谢谢楼上的两位高人!
      

  5.   

    变通一下就可以了。 "alert" 换用随机数,随机字符。