您的位置:首页 > 编程语言 > ASP

Asp.net ajax学习(2)代理控制器ScriptManagerProxy

2007-10-07 23:23 609 查看
一.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了,运行测试一下吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐