0

我有一个 ASP 网页(.NET 3.5),上面有 2 个更新面板。
我还使用 jQuery t 显示提示并使用 jQuery UI 创建选项卡。

在我更新 UpdatePanel 的内容之前,网页工作正常。在网上搜索并在我的电脑上做一些事情,我得到了这个解决方案:

在我的页面标题中,我正在链接我的 js 文件:

<script type="text/javascript" src="../js/jquery-1.7.2.min.js"> </script>
<script type="text/javascript" src="../js/jquery-ui-1.8.20.custom.min.js"> </script>
<script type="text/javascript" src="../js/jquery.ui.selectmenu.js"></script>
<script type="text/javascript" src="../js/tipsy.js"></script>
<script type="text/javascript" src="scripts.js"></script>

然后我像这样定义我的 ToolkitScriptManager:

<asp:ToolkitScriptManager runat="server" EnablePartialRendering="True">
    <Scripts>
        <asp:ScriptReference Path="refresh.js"/>
    </Scripts>
</asp:ToolkitScriptManager>

我的 refresh.js 的内容如下所示:

Sys.Application.add_init(AppInit);

function AppInit(sender) {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(End);
}

function End(sender, args) {
    initAll();
}

我的 scripts.js 看起来像这样:

...
//here I create all my functions
...

function initAll()
{
    //here I call I my functions
    $("#tip1").tipsy({ gravity: 'e', fade: true, offset: 10 });
    initDatePicker();
    $("#tabs").tabs();
    $("#radioset1").buttonset();
    $("#radioset2").buttonset();
    $('select').selectmenu();
    $("input:button, input:submit").button();
    initDatePickers();
    initAutocomplete();
}

$(function() {
    initAll();
});

//this function shows content of my page after jQuery is ready.
$(window).load(function() {
    $("#loading").hide("fast", function() {
        $("div.fullsize").show()
    })
});

这样,我在加载页面上创建了所有函数,然后当我更新我的 updatePanel 时,它们被“刷新”。

这现在对我有用,但我想知道这是否是正确的方法并进行了优化。当我initAll在 updatePanel 刷新后在函数中添加事件侦听器时,它们会再次添加(对吗?)。

我的问题:

  1. 在 ASP 页面中使用 jQuery 并将其与 updatePanels 一起使用的最佳方法是什么,以便在 updatePanel 更新后 jQuery 代码可以工作。
  2. 如何确保在显示我的内容之前加载所有 javascript?够$(window).load()了吗?我在我的解决方案中使用了多个 js 文件,我不希望我的网站抛出错误,因为我使用了未加载文件中的函数。
4

0 回答 0