使用ScriptManager.RegisterStartupScript时的奇怪功能

时间:2013-01-14 21:00:47

标签: vb.net

我使用ScriptManager.RegisterStartupScript遇到了这个奇怪的问题。基本上当我点击一个按钮控件时我想要完成它,它会回到服务器,检查是否有任何错误,我想要发生什么是如果有任何错误,想要使用弹出框。按钮控件位于更新面板中。我认为最简单的方法是使用javascript警告框。所以我终于让它工作了但是当警报框出现时它会弄乱我的菜单控件,直到警报框开始然后它就可以了。它有点难以解释,所以我插入一个图像,告诉你们一旦点击按钮你们会发生什么。如果有人可以指出我正确的方向,我不知道如何修复或发生什么事。他也是我的代码使用。 enter image description here

 Protected Sub btnPlan_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPlan.Click

 'Dim sb As New System.Text.StringBuilder
  sb.Append("<script language='javascript'>")
  sb.Append("alert(' No data in the database  ');")
  sb.Append("</script>")

    If (Not ClientScript.IsStartupScriptRegistered("JSScript")) Then
        ScriptManager.RegisterStartupScript(UpdatePanel5, Me.GetType(), "JSScript", sb.toString(), True)
    End If

2 个答案:

答案 0 :(得分:1)

您可以尝试使用RegisterClientScriptBlock:

Protected Overrides Sub Page_Load(ByVal sender as Object, ByVal e As System.EventArgs)
     MyBase.Page_Load(sender, e)

     Try
         If Not ScriptManager.IsInAsyncPostBack Then
              Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "AlertScript", "<script type='text/javascript' language='javascript'>function YourAlert(){alert(' No data in the database  ');}</script>")
         EndIf
     Catch ex As Exception
     End Try
End Sub

答案 1 :(得分:0)

感谢你的所有建议。我以不同的方式剥了皮,让它以我想要的方式工作。我所做的是将消息放在隐藏的文本框中,并使用jquery确保页面已经加载,然后在需要时提醒消息。