在页面加载上从ASP.NET服务器执行JavaScript

时间:2013-05-28 19:41:20

标签: javascript asp.net vb.net

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

//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特定代码。

1 个答案:

答案 0 :(得分:3)

因为它全部依赖于JQuery,所以您需要确保renderComboBox()仅在页面准备就绪时触发,因此将$(function() { })代码添加到您page_load <上输出的代码中/ p>

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

因此,请尝试将您的Javascript修改为:

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