ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在ASP.NET AJAX中,由于一個ASPX頁面上只能有一個ScriptManager控件,所以在有母版頁的情況下,如果需要在Master-Page和Content-Page中需要引入不同的腳本時,這就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManager,ScriptManager 和 ScriptManagerProxy 是兩個非常相似的控件。<?XML:NAMESPACE PREFIX = O /> 主要內(nèi)容
????<Services>
????????????????<asp:ServiceReference?Path="CalculWebService.asmx"?/>
?????</Services>
</asp:ScriptManagerProxy>在它下面可以添加的子標簽有:Services,Scripts,AuthenticationService,ProfileService 二.簡單示例
public?class?SimpleWebService?:?System.Web.Services.WebService?{
????public?SimpleWebService?()?{
????????//Uncomment?the?following?line?if?using?designed?components?
????????//InitializeComponent();?
????}
????[WebMethod]
????public?string?EchoString(String?s)
????{
????????return?"Hello?"?+?s;
????}
} CalculWebService.asmx [ScriptService]
public?class?CalculWebService?:?System.Web.Services.WebService?{
????public?CalculWebService?()?{
????????//Uncomment?the?following?line?if?using?designed?components?
????????//InitializeComponent();?
????}
????[WebMethod]
????public?int?Add(int?a,int?b)?{
????????return?a?+?b;
????}
} 2.添加一個Master-Page,在它上面添加一個ScriptManager控件,并引入WebService SimpleWebService.asmx,并添加相應的HTML元素: <div>
????<asp:ScriptManager?ID="ScriptManager1"?runat="server"?>
????????<Services>
????????????<asp:ServiceReference?Path="SimpleWebService.asmx"?/>
????????</Services>
????</asp:ScriptManager>
????<asp:contentplaceholder?id="ContentPlaceHolder1"?runat="server">
????</asp:contentplaceholder>
???? <h3>請輸入名稱:</h3>
????<input?id="inputName"?type="text"?/>
????<input?id="button"?type="button"?value="確?定"?onclick="return?OnbuttonGo_click()"?/>
</div> 編寫相應的JS代碼: <script?type="text/javascript"?language="JavaScript">
????function?OnbuttonGo_click()?
????{
????????requestSimpleService?=?SimpleWebService.EchoString(
????????????document.getElementById('inputName').value,???????//params
????????????OnRequestComplete????//Complete?event
????????????);
????????return?false;
????}
????function?OnRequestComplete(result)?
????{
????????alert(result);
????}
</script> 3.添加一個Content-Page,在它上面添加一個ScriptManagerProxy控件,并引入WebService CalculWebService.asmx,并添加相應的HTML元素: <div>
????<asp:ScriptManagerProxy?id="ScriptManagerProxy1"?runat="server">
????????<Services>
????????????????????<asp:ServiceReference?Path="CalculWebService.asmx"?/>
?????????</Services>
????</asp:ScriptManagerProxy>
????<h3>請輸入兩個數(shù):</h3> <input?id="inputA"?type="text"?style="width:?110px"?/> +
????<input?id="inputB"?style="width:?110px"?type="text"?/>
????<input?id="buttonEqual"?type="button"?value="?=?"??onclick="return?OnbuttonEqual_click()"/>
</div> 編寫相應的JS代碼: <script?type="text/javascript"?language="JavaScript">
????function?OnbuttonEqual_click()?
????{
????????requestSimpleService?=?CalculWebService.Add(
????????????document.getElementById('inputA').value,???????//params
????????????document.getElementById('inputB').value,???????//params
????????????OnRequestComplete????//Complete?event
????????????);
????????return?false;
????}
????function?OnRequestComplete(result)?
????{
????????alert(result);
????}
</script>4.運行后界面如下: <?XML:NAMESPACE PREFIX = V /> 測試Master-Page中的Web Service: 測試Content-Page中的Web Service: 關于ScriptManagerProxy就介紹到這兒,有個問題就是在我的IDE中為什么ScriptManagerProxy總是提示為未知元素,但運行起來并不抱錯,結果也可以出來?
1.ScriptManagerProxy控件概述 2.簡單示例
?
一.ScriptManagerProxy控件概述在ASP.NET AJAX中,由于一個ASPX頁面上只能有一個ScriptManager控件,所以在有Master-Page的情況下,如果需要在Master-Page和Content-Page中需要引入不同的腳本時,就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManager,ScriptManagerProxy和 ScriptManager是兩個非常相似的控件。簡單定義形式如下: <asp:ScriptManagerProxy?id="ScriptManagerProxy1"?runat="server">
????<Services>
????????????????<asp:ServiceReference?Path="CalculWebService.asmx"?/>
?????</Services>
</asp:ScriptManagerProxy>在它下面可以添加的子標簽有:Services,Scripts,AuthenticationService,ProfileService 二.簡單示例
下面看一個簡單的使用ScriptManagerProxy的例子。 1.首先我們準備兩個WebService,在Master-Page中我們輸入一個字符串,而在Content-Page中我們求兩個數(shù)的和。 SimpleWebService.asmx [ScriptService]
public?class?SimpleWebService?:?System.Web.Services.WebService?{
????public?SimpleWebService?()?{
????????//Uncomment?the?following?line?if?using?designed?components?
????????//InitializeComponent();?
????}
????[WebMethod]
????public?string?EchoString(String?s)
????{
????????return?"Hello?"?+?s;
????}
} CalculWebService.asmx [ScriptService]
public?class?CalculWebService?:?System.Web.Services.WebService?{
????public?CalculWebService?()?{
????????//Uncomment?the?following?line?if?using?designed?components?
????????//InitializeComponent();?
????}
????[WebMethod]
????public?int?Add(int?a,int?b)?{
????????return?a?+?b;
????}
} 2.添加一個Master-Page,在它上面添加一個ScriptManager控件,并引入WebService SimpleWebService.asmx,并添加相應的HTML元素: <div>
????<asp:ScriptManager?ID="ScriptManager1"?runat="server"?>
????????<Services>
????????????<asp:ServiceReference?Path="SimpleWebService.asmx"?/>
????????</Services>
????</asp:ScriptManager>
????<asp:contentplaceholder?id="ContentPlaceHolder1"?runat="server">
????</asp:contentplaceholder>
???? <h3>請輸入名稱:</h3>
????<input?id="inputName"?type="text"?/>
????<input?id="button"?type="button"?value="確?定"?onclick="return?OnbuttonGo_click()"?/>
</div> 編寫相應的JS代碼: <script?type="text/javascript"?language="JavaScript">
????function?OnbuttonGo_click()?
????{
????????requestSimpleService?=?SimpleWebService.EchoString(
????????????document.getElementById('inputName').value,???????//params
????????????OnRequestComplete????//Complete?event
????????????);
????????return?false;
????}
????function?OnRequestComplete(result)?
????{
????????alert(result);
????}
</script> 3.添加一個Content-Page,在它上面添加一個ScriptManagerProxy控件,并引入WebService CalculWebService.asmx,并添加相應的HTML元素: <div>
????<asp:ScriptManagerProxy?id="ScriptManagerProxy1"?runat="server">
????????<Services>
????????????????????<asp:ServiceReference?Path="CalculWebService.asmx"?/>
?????????</Services>
????</asp:ScriptManagerProxy>
????<h3>請輸入兩個數(shù):</h3> <input?id="inputA"?type="text"?style="width:?110px"?/> +
????<input?id="inputB"?style="width:?110px"?type="text"?/>
????<input?id="buttonEqual"?type="button"?value="?=?"??onclick="return?OnbuttonEqual_click()"/>
</div> 編寫相應的JS代碼: <script?type="text/javascript"?language="JavaScript">
????function?OnbuttonEqual_click()?
????{
????????requestSimpleService?=?CalculWebService.Add(
????????????document.getElementById('inputA').value,???????//params
????????????document.getElementById('inputB').value,???????//params
????????????OnRequestComplete????//Complete?event
????????????);
????????return?false;
????}
????function?OnRequestComplete(result)?
????{
????????alert(result);
????}
</script>4.運行后界面如下: <?XML:NAMESPACE PREFIX = V /> 測試Master-Page中的Web Service: 測試Content-Page中的Web Service: 關于ScriptManagerProxy就介紹到這兒,有個問題就是在我的IDE中為什么ScriptManagerProxy總是提示為未知元素,但運行起來并不抱錯,結果也可以出來?
轉載于:https://blog.51cto.com/terrylee/67709
總結
以上是生活随笔為你收集整理的ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linwei_211 SVN错误:At
- 下一篇: flex制作swc文件