程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ASP.NET AJAX入門系列(3):使用ScriptManagerProxy控件

ASP.NET AJAX入門系列(3):使用ScriptManagerProxy控件

編輯:.NET實例教程

在ASP.Net AJax中,由於一個ASPX頁面上只能有一個ScriptManager控件,所以在有母版頁的情況下,如果需要在Master-Page和Content-Page中需要引入不同的腳本時,這就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManager,ScriptManager 和 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中我們求兩個數的和。

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>

    &nbsp;<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>請輸入兩個數:</h3>&nbsp;<input id="inputA" type="text"  />&nbsp;+&nbsp;

    <input id="inputB"  type="text" />&nbsp;

    <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.運行後界面如下:

測試Master-Page中的Web Service:

測試Content-Page中的Web Service:

關於ScriptManagerProxy就介紹到這兒,有個問題就是在我的IDE中為什麼ScriptManagerProxy總是提示為未知元素,但運行起來並不抱錯,結果也可以出來?
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved