如何从代码后面调用javascript函数?
最受欢迎的回答是“ScriptManager.RegisterStartupScript
”但是,这在我的情况下不起作用。
我有一个vb类正在进行数据库检查以查看是否存在记录。如果存在,则调用javascript函数以显示警报(“Record exists”)
所以我正在做类似
的事情Dim strMessage as string = "javascript:RecordExists('Param');"
如何从我的vb.net类调用此函数?
答案 0 :(得分:13)
If DataStore.Record.Exists(theRecord) Then
Dim script As String = "alert('Record exists')"
If Not Page.ClientScript.IsStartUpScriptRegistered(Me.GetType(), "alertscript") Then
Page.ClientScript.RegisterStartUpScript(Me.GetType(), "alertscript", script, True)
End If
End If
你会像上面那样做,你应该用检查数据库记录的条件replaceDataStore.Record.Exists(theRecord)
答案 1 :(得分:11)
您需要以稍微不同的方式考虑您的脚本 - 记住,JavaScript运行客户端,VB.NET运行服务器端。因此,您无法从服务器端“调用”JavaScript。
但是,您可以在服务器端 生成 JavaScript,但在运行之前需要将其输出到页面。
如果您正在进行整页回发,那么实现它的粗略方法是将脚本或函数分配给Literal
控件,该控件将HTML页面上的Text
属性完全呈现为写入。
然后,您的脚本将在Literal
呈现的位置执行。
一种更简洁的方法是按照您的注意事项通过ScriptManager
将您的脚本添加到页面中。您可以尝试使用StartupScript
而不是.RegisterClientScriptBlock()
而不是{{1}}?你没有提到你的情况是什么不起作用?
最全面的方法是使用AJAX - .NET的内置框架或jQuery。 jQuery的AJAX(以及一般的AJAX)是一个单独的主题,您可以阅读here。