0

我在使用 ScriptManager.RegisterStartupScript 时遇到了这个奇怪的问题。基本上,当我单击按钮控件时,我想要完成的是,它会返回服务器,检查是否有任何错误,而我想要发生的是,如果有任何错误,想要使用弹出框。按钮控件位于更新面板内。我认为完成此操作的最简单方法是使用 javascript 警报框。所以我终于让它工作了,但是当警报框出现时,它会弄乱我的菜单控件,直到警报框出现,然后就可以了。这有点难以解释,所以我插入了一张图片,向你们展示单击按钮后发生的事情。如果有人能指出我正确的方向,我不知道如何解决或发生了什么。他也是我正在使用的代码。在此处输入图像描述

 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
4

2 回答 2

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
于 2013-01-14T23:16:57.073 回答
0

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

于 2013-01-18T16:45:17.837 回答