从后面的vb.net代码调用javascript

时间:2011-10-06 11:46:30

标签: javascript asp.net vb.net code-behind

如何从代码后面调用javascript函数?
最受欢迎的回答是“ScriptManager.RegisterStartupScript”但是,这在我的情况下不起作用。

我有一个vb类正在进行数据库检查以查看是否存在记录。如果存在,则调用javascript函数以显示警报(“Record exists”)

所以我正在做类似

的事情
Dim strMessage as string = "javascript:RecordExists('Param');"  

如何从我的vb.net类调用此函数?

2 个答案:

答案 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