【问题标题】:Execute JavaScript from ASP.NET Server on Page Load在页面加载时从 ASP.NET 服务器执行 JavaScript
【发布时间】:2013-05-23 21:37:30
【问题描述】:

我需要调用以下代码来使用 JQuery 的 UI 库呈现一个组合框:

//renders combobox element with JQueryUI library
function renderComboBox() {
    $("#combobox").combobox();
}

当我在标题中包含以下js时,我可以很好地执行它:

//when doc is ready calls into function to render combobox
$(function() {
    renderComboBox();
});

但是,根据加载时可用的条件,我需要决定运行或不运行代码。我想用类似于以下的东西来做到这一点:

Private Sub Page1_Load(sender As Object, e As EventArgs) Handles Me.Load
    If .... Then
        ClientScript.RegisterStartupScript(Me.GetType, _ 
            "RenderCombo", "renderComboBox();", True)
    End If
End Sub

但它似乎不起作用。有什么想法吗?

更新Here's 一个 jsFiddle 来演示我正在尝试做的事情,但这并不是很有帮助,因为它无助于运行任何 ASP.NET 特定代码。

【问题讨论】:

    标签: javascript asp.net vb.net


    【解决方案1】:

    因为这一切都依赖于 JQuery,所以您需要确保您的 renderComboBox() 仅在页面准备好时触发,因此将 $(function() { }) 代码添加到您在 page_load 上输出的代码中

    当前发生的是您的页面加载,renderComboBox() 立即触发 - 它将在您的任何 JQuery 或 UI 准备好之前触发。

    所以尝试将你的 Javascript 修改为:

       ClientScript.RegisterStartupScript(Me.GetType, _ 
            "RenderCombo", "$(function() { renderComboBox();})", True)
    

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 2021-07-19
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多