updatePanel导致JS失效的解决办法(转)

吐槽下,维护别人之前做的项目好蛋疼,整个页面都是用微软的ajax框架。

 

今天给repeater用JS写一个hover事件

复制代码
复制代码
<script type="text/javascript">
        $(function(){
            $('.trhead').click(function(){
                $(this).next('.trcontent').find('.divcontent').slideToggle('fast');
            });
            $('.trhead').hover(function(){$(this).css("background",'rgb(215,215,215)');},
                function(){$(this).css("background",'#fff');}
            );
        })
      
    </script>
复制代码
复制代码

结果 repeater翻到第二页后,效果失效了,也就是JS没了。

这个时候,就在

    protected void AspNetPager3_PageChanged(object sender, EventArgs e)
    {
        BindData();
        //绑定数据后重新注册一下JS事件
        ScriptManager.RegisterClientScriptBlock(up1, GetType(), "aa", "aa()", true);
    }

而这个aa()函数呢,当然啦,就是:

复制代码
复制代码
    <script type="text/javascript">

        function aa()
        {
            $('.trhead').click(function(){
                $(this).next('.trcontent').find('.divcontent').slideToggle('fast');
            });
            $('.trhead').hover(function(){$(this).css("background",'rgb(215,215,215)');},
                function(){$(this).css("background",'#fff');}
            );
        }
    </script>
复制代码
复制代码

也就是把onload要执行的JS,放到一个方法aa()中,在分页绑定数据后,重新注册一下即可。

同理,当别的控件回传后,也需要重新注册下即可。

 

posted @   Cat Qi  阅读(2313)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示