Javascript 无法在 ClientScriptManager 内触发
Posted
技术标签:
【中文标题】Javascript 无法在 ClientScriptManager 内触发【英文标题】:Javascript cannot fire inside the ClientScriptManager 【发布时间】:2018-12-02 08:56:18 【问题描述】:我需要检查一些东西来决定是否显示警告。问题是javascript没有触发。有人可以帮我解释为什么。我已经在网上搜索过,看起来我的脚本很好。
这是我的代码:
Private Sub ShowWarning(ByVal ID As Integer)
Dim ds As DataSet = reminders.getJuryPaymentDueEvent(ID)
If ds.Tables(0).Rows.Count > 0 Then
Dim cs As ClientScriptManager = Page.ClientScript
Dim script As String = "javascript:confirm('There is a record and it will be deleted')"
cs.RegisterStartupScript(Page.GetType(), "confirm", script, True)
End If
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
If hasorder() then 'there is other function which works fine
ShowWarning(ID)
'if confirm return ture
deleteOrder()
end if
End Sub
【问题讨论】:
【参考方案1】:如果页面有 AJAX 更新面板,则 ClientScript.RegisterClientScriptBlock 和 ClientScript.RegisterStartupScript 方法不起作用。
改为使用 ScriptManager 的 RegisterClientScriptBlock 和 RegisterStartupScript 方法。
如果您的页面没有 AJAX,则调试代码放置断点以检查代码是否正在进入 ShowWarning() 方法中的 If...Then 阻塞。
【讨论】:
我把断点放在If stamen后面,代码正在进入scriptManager。但是不弹出确认框 尝试用以下代码替换代码:cs.RegisterStartupScript([GetType](), "confirm", script, True) 或者直接使用这段代码而不分配对象变量: Dim script As String = "javascript:confirm('有一条记录将被删除')" ClientScript.RegisterStartupScript([GetType]() , "确认", 脚本, True)以上是关于Javascript 无法在 ClientScriptManager 内触发的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Firefox 上从 Javascript 提交表单