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()中,在分页绑定数据后,重新注册一下即可。

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

 

你可能感兴趣的:(update)