【问题标题】:Datagrid click event数据网格点击事件
【发布时间】: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


【解决方案1】:

请参阅我关于服务器端代码与客户端代码的评论。您必须将要在警报之后运行的代码放在单独的方法中,并通过 AJAX 从客户端调用该方法。

【讨论】:

  • 很高兴你明白了。
猜你喜欢
  • 2012-03-31
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 2017-10-14
  • 2017-07-01
相关资源
最近更新 更多