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

Tro*_*roy 9 javascript vb.net asp.net code-behind

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

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

所以我正在做类似的事情

Dim strMessage as string = "javascript:RecordExists('Param');"  
Run Code Online (Sandbox Code Playgroud)

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

Dee*_*ons 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
Run Code Online (Sandbox Code Playgroud)

你会像上面那样做,你应该用检查数据库记录的条件replaceDataStore.Record.Exists(theRecord)

  • 有没有办法调用已经写在前端的javascript函数,我的意思是aspx文件.我只想从后面的代码调用该函数. (2认同)

Wid*_*dor 11

您需要以稍微不同的方式考虑您的脚本 - 记住,JavaScript运行客户端,VB.NET运行服务器端.所以你不能从服务器端"调用"JavaScript.

但是,您可以在服务器端生成 JavaScript,但在运行之前需要将其输出到页面.

如果您正在进行整页回发,那么实现它的粗略方法是将脚本或函数分配给Literal控件,该控件Text在HTML页面上的属性与写入完全相同.

然后,您的脚本将在Literal渲染点执行.

更简洁的方法是通过ScriptManager您所注意到的方式将脚本添加到页面.而不是StartupScript,你可以尝试使用.RegisterClientScriptBlock()而不是?你没有提到你的情况是什么不起作用?

最全面的方法是使用AJAX - .NET的内置框架或jQuery.jQuery的AJAX(以及一般的AJAX)是一个单独的主题,您可以在这里阅读.