ASP.NET学习4. ASP.NET Ajax下POST完成后调用javascript函数

1.网页的布局有一个专门的Javascript函数adjustOfPage()函数,在页面加载前调用,适用Jquery的$(document).ready();方法:

        $(document).ready(function adjustOfPage() {
            document.getElementById("Screen").width = screen.width - 50;
            document.getElementById("Navigator").width = screen.width - 50;
            document.getElementById("cell_table").width = screen.width - 50 - 213 - 14;
            document.getElementById("navi_end").width = screen.width - 50 - 926;
        });

由于调用了该方法,页面可根据桌面分辨率的大小自动的调整。

2.但是当我操作一次页面的上面按钮控件之后,也即一个POST操作,后台的处理完成之后回到原先的页面,布局变的凌乱了!

因为此时页面是局部更新的,没有对整个页面重新生成一次,adjustOfPage()没有被调用。

3.于是我想办法去调用这个前端的脚本,想到了之前的ClientScriptManager对象的RegisterClientScriptBlock和RegisterStartupScript方法,以为这个方法的作用是后台在任何时候都可以向前台制定需要其执行的脚本,其实不然。

两种方法有些类似都是后台向页面注册一个脚本块,至于什么后执行却不能确定。RegisterStartupScript方法注册的脚本必须是在页面加载的时候才能执行。

4.经过请教懂的同学,了解到,POST操作一般有两种:

(1).一中是普通的POST,这中情况下每次POST返回时,整个页面都要重新加载;

(2).另一种是在Ajax框架下的POST,此时需要在加一段代码

    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(adjustOfPage);
    </script>

详细的适用方法见MSDN:http://msdn.microsoft.com/zh-cn/library/bb383810(v=vs.100).aspx

原文地址:https://www.cnblogs.com/superdaddy/p/3137986.html