【发布时间】:2015-05-28 21:05:48
【问题描述】:
我正在尝试从后面的 vb 代码弹出警报。我可以弹出警报框,但只有在代码运行后才会弹出。我尝试使用 2 个单独的 if 语句来评估第一个引发 javascript 函数 click ok 然后转到第二个,但无论哪种方式代码都会在显示弹出框时执行。有什么建议或我到底错过了什么?
谢谢
这里是代码
Private Sub AssignOwnership(ByVal AccountCode As String)
Dim dgAssetList As ArrayList = DirectCast(Session("CHECKED_ITEMS"), ArrayList)
If dgAssetList IsNot Nothing AndAlso dgAssetList.Count > 0 Then
ClientScript.RegisterStartupScript(Me.GetType(), "alert", "alert('transer records?')", True)
End If
If dgAssetList IsNot Nothing AndAlso dgAssetList.Count > 0 Then
Dim dInspDate As DateTime = DateTime.MinValue
Dim dNextInspDate As DateTime = DateTime.MinValue
Dim dNextReplDate As DateTime = DateTime.MinValue
Dim dReplDate As DateTime = DateTime.MinValue
Dim dInspFromCalc As DateTime = DateTime.MinValue
Dim dReplFromCalc As DateTime = DateTime.MinValue
Dim dAReplDate As DateTime = DateTime.MinValue
End If
【问题讨论】:
-
我认为您在编写 Web 应用程序时缺少对客户端与服务器的清晰理解。您不能从您的 VB .Net 代码隐藏文件中发出警报(或任何其他 javascript 函数)。
-
我相信我当时说错了。使用 clientscript.registerstartupscript 从后面的代码调用 javascipt 函数。我需要在该警报框上执行的操作是等到单击“确定”然后继续
-
你错了。
ClientScript.RegisterStartupScript只是将脚本添加到页面。直到页面在浏览器中呈现后,该脚本才会真正运行。流程的简化示例如下所示:您有一个 Web 窗体 .ASPX 页面。 -> 您的 VB .Net 代码在页面发送到浏览器之前会对页面进行处理(即添加您的 JavaScript 警报)。 -> 页面被发送到浏览器。 -> 客户端脚本(即 JavaScript)在浏览器中运行。
标签: javascript jquery vb.net datagrid