2

我需要调用以下代码来使用 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

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

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

4

1 回答 1

3

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

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

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

   ClientScript.RegisterStartupScript(Me.GetType, _ 
        "RenderCombo", "$(function() { renderComboBox();})", True)
于 2013-05-28T19:43:41.313 回答