【问题标题】:Load jquery in asp.net page在 asp.net 页面中加载 jquery
【发布时间】:2012-04-04 10:32:26
【问题描述】:

我正在使用 asp.net c# 和 jquery

我创建了一个包含两个更新面板(UpdateMode = 条件)的页面,每个更新面板中都有一个带有搜索过滤器(名称、描述等)的表单

每个表单都有一个按钮,当按下该按钮时,将通过在 jQuery 中创建的效果显示高级搜索选项(功能 ToggleAdvOptions,当您单击按钮时会展开一个 div 并且当您返回按合同时)

要加载 jquery 函数,请使用以下脚本:

<script type="text/javascript">   
        function load() {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function () {
            BindEvents();
        });
    }

然后我从页面的body onload事件中调用函数load():

<body onload="load();">

问题是,如果我从 UpdatePanel1 进行回发,然后单击按钮以显示高级选项 UpdatePanel2,则 ToggleAdvOptions 函数会执行两次。效果是生成的 div 扩展然后收缩

有人知道如何解决这个问题吗?

最好的问候

【问题讨论】:

  • 我不知道,也许我遗漏了一些东西,但我认为您的问题中遗漏了一些 jQuery 代码?
  • 这确实是更新面板的“问题”,他们重新加载整个页面,然后将相关内容转储到面板中。正因为如此,你绑定了同一个事件两次,你能不能直接做一个$(selector).click(function() {}) 来代替?
  • 我会考虑完全不使用更新面板。我发现它们太痛苦了,并用 ajax 调用代替了它们。请参阅此博文:encosia.com/why-aspnet-ajax-updatepanels-are-dangerous

标签: jquery asp.net load


【解决方案1】:

我假设您的页面上已经有以下内容:

  1. ScriptManager 控件。
  2. 您已在更新面板控件上声明触发器,例如

                 <Triggers>
                   <asp:AsyncPostBackTrigger ControlID="Button1" />
                 </Triggers>
    

如果它不同,或者仍然不能与声明的触发器一起工作,那么更多的代码应该会极大地帮助我们理解您面临的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2014-12-20
    相关资源
    最近更新 更多