我的学习历程  
ASP.NET+Atlas+Linux学习历程
公告
日历
统计
  • 随笔 - 15
  • 文章 - 3
  • 评论 - 6
  • 引用 - 0

导航

 

2007年10月7日

一.ScriptManagerProxy控件概述

由于ScriptManager是整个页面的脚本控制器,所以一个ASPX页面上只能有一个ScriptManager控件。如果在项目在存在了母版页,并在母版页中已经应用了ScriptManager,而在内容页中又需要引入其他的WEB服务的话,该如何处理?
    这个时候ScriptManagerProxy就派上用场了。我们在内容页中可以用ScriptManagerProxy代理ScriptManagerProxy的功能,它的用法与ScriptManager完全相似:

<asp:ScriptManagerProxy id="ScriptManagerProxy1" runat="server">

    
<Services>

                
<asp:ServiceReference Path="CalculWebService.asmx" />

     
</Services>

</asp:ScriptManagerProxy>
在它下面可以添加的子标签有:Services,Scripts,AuthenticationService,ProfileService
或许有人说可以把服务和脚本都在母版页里面加载更省事,但是有时不同的内容页需要不同的脚本,这样做会降低效率。
2.用实例演示ScriptManagerProxy的应用
(1)首先,在网站下面添加一个母版页,命名为:MasterPage.master,添加如下控件:

(2)在根目录下添加js文件,JScript1.js,内容如下:
// JScript 文件
//求和】
function GetSum()
{
    var num1=document.getElementById("Text1").value;
    var num2=document.getElementById("Text2").value;
    sum(num1,num2);
}
function sum(m,n)
{
    alert(eval(m)+eval(n));
}
(3)现在在母版页中写入加载这个js文件的语句
<asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
        <asp:ScriptReference Path="JScript1.js" />
        </Scripts>
        </asp:ScriptManager>
(4)新建一个WEB页面,命名为Default2.aspx,选择其母版页MasterPage.master;
添加控件后效果如下:

(5)新建JS文件JScript2.js,代码如下:
// JScript 文件
//求积
function GetProduct()
{
    var num1=document.getElementById("Txt1").value;
    var num2=document.getElementById("Txt2").value;
    product(num1,num2);
}
function product(a,b)
{
    alert(eval(a)*eval(b));
}
现在在Default.aspx2中引用这个文件就OK了,哈哈ScriptManagerProxy派上用场了,代码如下:
<asp:ScriptManagerProxy id="ScriptManagerProxy" runat="server">
    <Scripts>
        <asp:ScriptReference Path="JScript2.js" />
        </Scripts>
    </asp:ScriptManagerProxy>
OK了,运行测试一下吧!



posted @ 2007-10-07 23:23 剑落飘香 阅读(252) 评论(0) 编辑
 
 

首先,新建一个AJAXEnableWebSite,在default.aspx中添加如下控件:

注意:GridView控件和其数据源SqlDataSource控件放在updatepanel控件中,打开GridView的翻页功能,在updatepanel控件外放置一个updateProgress控件和Label控件,Label控件用于显示加载的时间,可以判断是否实现局部刷新。因为updatepane控件内的内容会被更新,其外的控件则不会更新,可以说UpdatePanel是实现局部刷新的关键。
在UpdateProgress控件中写入更新时的提示,如上图。
   下面,为了能够清楚的看到局部刷新的效果,并证明进行的局部刷新,我们的page_load()中加入了:
        Label1.Text = DateTime.Now.ToString();//显示页面加载的时间。
在GridView控件的翻页事件中加入如下代码来延迟进程:
    protected void GridView1_PageIndexChanged(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(2000);
    }
好了,运行一下,就可以看到效果了。
你可以看到当翻页效果实现时,Label1上面的时间并没有变,说明实现了局部刷新。

posted @ 2007-10-07 22:17 剑落飘香 阅读(117) 评论(0) 编辑
 
Copyright © 剑落飘香 Powered by: 博客园 模板提供:沪江博客