【问题标题】:How do I use a jQuery $(document).ready and an ASP.NET UpdatePanel together?如何同时使用 jQuery $(document).ready 和 ASP.NET UpdatePanel?
【发布时间】:2010-12-17 13:08:05
【问题描述】:

我正在我页面的<head> 部分中使用 Javascipt:

<script type="text/javascript">
    $(document).ready(function() {
        $('dl.expander dd').expander
        (
            {   slicePoint: 50,    widow: 2,   expandEffect: 'show', userCollapseText: '[^]' }
        );
    });
</script>

第一次加载页面时效果很好;但是,当我单击 &lt;asp:updatepanel&gt; 内的 &lt;asp:button&gt; 时,页面会部分刷新,但不会再次调用 $(document).ready

这很重要,因为 $(document).ready 部分中的这个 Javascript 正在折叠并在页面上的段落列表(或 dl 的 class="expander")中添加一个“readmore”选项,其中大部分应该折叠默认情况下。

【问题讨论】:

    标签: .net asp.net jquery asp.net-ajax


    【解决方案1】:

    您需要向 AJAX 客户端 endRequest 事件添加一个处理程序。有关详细信息,请参阅下面的链接。当 ajax 引擎完成对服务器的请求时调用此“事件”,并且对于在更新面板内的内容上运行的任何 javascript 都是必需的。

    http://www.asp.net/ajax/documentation/live/overview/AJAXClientEvents.aspx

    http://msdn.microsoft.com/en-us/library/bb383810.aspx

    <script type="text/javascript">
        $(function() {
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
        });
    
        function EndRequestHandler(sender, args) {
            // code that you want to run when the request is complete
        }
    <script>
    

    【讨论】:

    • 我一直在寻找这么简单的解决方案很长时间了。迄今为止我找到的最简单的解决方案。
    猜你喜欢
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多