2013-05-28 50 views
2

我需要调用下面的代码使用jQuery的UI库来渲染COMBOX框:从ASP.NET服务器上的页面加载执行JavaScript

//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一个js展现了我正在尝试做的事情,但它不是非常有用,因为它不能帮助运行任何ASP.NET特定的代码。

回答

3

因为这一切都依赖于JQuery的,你需要确保你的renderComboBox()仅火灾时,该页面已准备就绪,所以加$(function() { })代码,该代码的输出上的page_load

什么正在发生的事情是你的页面加载,并且renderComboBox()立即启动 - 并且在您的任何JQuery或UI准备就绪之前它将被触发。

因此,尝试修改你的Javascript这样的:

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