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

简介:
ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有母版页的情况下,如果需要在Master-PageContent-Page中需要引入不同的脚本时,这就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManagerScriptManager  ScriptManagerProxy 是两个非常相似的控件。
主要内容
1 ScriptManagerProxy控件概述
2 .简单示例
 
一.ScriptManagerProxy控件概述
ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有Master-Page的情况下,如果需要在Master-PageContent-Page中需要引入不同的脚本时,就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManagerScriptManagerProxy和 ScriptManager是两个非常相似的控件。简单定义形式如下:
< asp:ScriptManagerProxy  id ="ScriptManagerProxy1"  runat ="server" >

    
< Services >

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

     
</ Services >

</ asp:ScriptManagerProxy >
在它下面可以添加的子标签有:ServicesScriptsAuthenticationServiceProfileService
二.简单示例
下面看一个简单的使用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"  style ="width: 110px"   /> &nbsp; + &nbsp;

    
< input  id ="inputB"  style ="width: 110px"  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总是提示为未知元素,但运行起来并不抱错,结果也可以出来?











本文转自lihuijun51CTO博客,原文链接: http://blog.51cto.com/terrylee/67709  ,如需转载请自行联系原作者
相关文章
|
4月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
51 8
|
8天前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
17 3
|
7月前
|
开发框架 前端开发 JavaScript
ASP.NET AJAX使用方法概述(三)
ASP.NET AJAX使用方法概述(三)
54 1
|
2月前
|
开发者 Windows
.NET 开源扁平化、美观的 C/S 控件库
【10月更文挑战第23天】介绍了三款适用于 .NET 平台的开源扁平化、美观的 C/S 控件库:MaterialSkin 采用 Google Material Design 风格,适合现代感界面;Krypton Toolkit 提供丰富控件,界面易于定制;Fluent Ribbon Control Suite 模仿 Office 界面,适合复杂功能应用。每款控件库均附有示例代码及 GitHub 链接。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
2月前
|
C# Android开发 iOS开发
一组.NET MAUI绘制的开源控件 - AlohaKit
一组.NET MAUI绘制的开源控件 - AlohaKit
|
3月前
|
开发框架 JavaScript 前端开发
|
7月前
|
开发框架 缓存 前端开发
安装ASP.NET AJAX (一安装)
安装ASP.NET AJAX (一安装)
110 0
|
7月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
85 0

相关实验场景

更多