2.ASP.NET AJAx架构--客户端框架的简单实现

完整代码如下:02_ClientCentric.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="02_ClientCentric.aspx.cs" Inherits="ClientCentric" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Client-Centric Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>客户端为中心的解决方案【使用web服务实现】</h3>
添加一个ScriptManager控件,然后还要声明一个服务引用指向本地web服务,从而生成服务的JavaScript代理,<br />
这样就可以在客户端脚本中调用这个服务了。

<!--增加一个服务引用来生成JavaScript代理-->
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="HRService.asmx" />
</Services>
</asp:ScriptManager>
<h2>Employee Lookup</h2>
<div>
<select id="Departments" size="5">
<option value="Engineering" >Engineering</option>
<option value="HR">Human Resources</option>
<option value="Sales">Sales</option>
<option value="Marketing">Marketing</option>
</select>
</div>

<br />
<div>
<span id="employeeResults"></span>
<span id="loading" style="display:none;" mce_style="display:none;">
<img src="images/indicator.gif" mce_src="images/indicator.gif" alt="" />
  Loading ...
</span>
</div>
<mce:script type="text/javascript"><!--

var departments = null;
//注册加载(load)和卸载(unload)事件
Sys.Application.add_load(page_load);
Sys.Application.add_unload(page_unload);

function page_load(sender, e)
{
departments = $get("Departments"); //获取到列表框
$addHandler(departments, "change", departments_onchange); //注册改变(change)事件的注册
//addHandler:在运行时将事件与事件处理程序相关联,或者在添加事件处理程序时声明要执行的代码。
}
function page_unload(sender, e)
{
$removeHandler(departments, "change", departments_onchange); //取消改变(change)事件的注册
}
function departments_onchange(sender, e)
{
$get("employeeResults").innerHTML = "";
$get("loading").style.display = "block";

var selectedValue = departments.value;
//调用JavaScript的代理
HRService.GetEmployeeCount(selectedValue, onSuccess);
/* 第一个参数:列表中选中的部门项。
第二个参数:是GetEmployeeCount()方法成功返回时的一个回调函数名。
*/
}
function onSuccess(result) //显示结果
{
$get("loading").style.display = "none";
$get("employeeResults").innerHTML = "Employee count: " + result;
}
// --></mce:script>
</form>
</body>
</html>

添加的web服务类:HRService.asmx
<%@ WebService Language="C#" Class="HRService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

using System.Web.Script.Services;//脚本服务的命名空间

[ScriptService] //声明脚本支持的有关服务
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class HRService : System.Web.Services.WebService
{
[ScriptMethod] //声明脚本支持的有关方法
[WebMethod]
public int GetEmployeeCount(string department)
{
System.Threading.Thread.Sleep(2000);
return HumanResources.GetEmployeeCount(department);
}
}
用到的数据访问类:HumanResources.cs
using System;
public static class HumanResources
{
public static int GetEmployeeCount(string department)
{
int count = 0;
switch (department)
{
case "Sales":
count = 10;
break;

case "Engineering":
count = 28;
break;

case "Marketing":
count = 44;
break;

case "HR":
count = 7;
break;

default:
break;
}
return count;
}
}

 

时间: 2024-09-19 14:28:45

2.ASP.NET AJAx架构--客户端框架的简单实现的相关文章

领先技术:ASP.NET AJAX和客户端模板

对于 ASP.NET AJAX 应用程序开发而言,人们非常乐衷于使用部分呈现,其主要原因在于其固有的简单性 - 对现有页面影响较小,对开发人员的技能要求较低.但是,部分呈现仅仅是一个在执行回发请求的过程中绕过浏览器的小技巧.使用部分呈现的页面并不是真正意义上的 AJAX 页面,因为它们仍然依赖于以前的回发方法.那么究竟什么才算是真正的 AJAX 应用程序? 实际上,真正的 AJAX 应用程序使用 XMLHttpRequest 对象绕过浏览器并与 Web 服务器及任何托管 HTTP 端点建立直接通

使用ASP.NET AJAX 1.0框架PreviewGlitz进行网页动画编程

本文基于目前最新框架的CTP版本,对它提供的淡入淡出动画功能在网页编程中进行试验. 一.引言 微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为http://ajax.asp.net/downloads/default.aspx),此框架由ASP.NET 2.0 AJAX Extensions 1.0和ASP.NET AJAX Control Toolkit两个基本部分组成.此外,还提供了一个更新一些的CTP(社区测试试用)版本,下载页面如下图1所示: 图1:下载示例程序所

创建定制的ASP.NET AJAX非可视化客户端组件

作者基于对微软ASP.NET AJAX 1.0框架的研究,本文继续讨论如何创建一个由基类Sys.Component派生的ASP.NET AJAX非可视化客户端组件,并展示它在Web页面中的用法. 一.简介 在本文中,我们将共同讨论如何创建一个由基类Sys.Component派生的ASP.NET AJAX非可视化客户端组件,并将展示它在Web页面中的用法. 具体说来,你将学习如何实现: ◆使用prototype设计模式以JavaScript定义一个非可视化组件类. ◆把一个非可视化组件注册为一个由

ASP.NET AJAX UpdatePanel 控件实现剖析

使用ASP.NET AJAX框架我们可以搭建快速响应.具有丰富的用户体验的AJAX Web应用程序,而该框架的UpdatePanel控件则提供了一种非常简单的方式来实现Web页面的局部更新,我们不需要在每次回发的时候都加载整个页面.   那这个控件是如何实现这种局部刷新的哪,透过其实现机制我们可以更清楚其优缺点,便于我们确定其使用场合.本文将重点阐述ASP.NET AJAX控件UpdatePanel的实现机制.   1. ASP.NET AJAX 简介 ASP.NET AJAX是微软在ASP.N

ASP.NET MVC的客户端验证:jQuery的验证

之前我们一直讨论的Model验证仅限于服务端验证,即在Web服务器根据相应的规则对请求数据实施验证.如果我们能够在客户端(浏览器)对用户输入的数据先进行验证,这样会减少针对服务器请求的频率,从而缓解Web服务器访问的压力.ASP.MVC 2.0及其之前的版本采用ASP.NET Ajax进行客户端验证,在ASP.NET MVC 3.0中,jQuery验证框架被引入是我们可以采用Unobtrusive JavaScript的方式进行客户端验证. 一.Unobtrusive JavaScript Un

ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问 WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也没 什么大的差别. 在ASP.NET应用程序里使用ASP.NET AJAX访问WebService通常都是通过 ScriptMananger引入WebService生成客户端代理的方法,同时也可以使用 Microsoft Ajax Library来完成.本文将介绍在ASP.NET MVC中使用AS

如何使用ASP.NET AJAX访问Web Services/WCF Services

Web Services 使用客户端script调用ASP.NET Web services (.asmx)和Windows Communication Foundation(WCF) services(.svc).脚本引用是自动添加到页面上的,并且他们自动产生Web service proxy类,你就从这里使 用客户端脚本调用Web service. 你还能访问ASP.NET Web Servicce 不使用ASP.NET AJAX 服务端控件(如,如果你使用不同的Web开发环 境).这样做,

[转载]超酷代码-使用 ASP.NET AJAX 进行拖放

原文地址 http://msdn.microsoft.com/msdnmag/issues/08/01/WickedCode/default.aspx?loc=zh AJAX 是对 Web 用户界面的一次变革,而 ASP.NET AJAX 使 AJAX 可以为 Visual Studio 用户所使用.它的下载分为三个独立的部分:ASP.NET AJAX Extensions (asp.net/ajax/downloads),提供了一组核心的 AJAX 功能,并已经过全面测试:ASP.NET AJ

ASP.NET AJAX Advance Tips &amp;amp; Tricks (1)

CascadingDropDown在IE和Safari中的一个缺陷和解决方法 前言: ASP.NET AJAX Toolkit中的CascadingDropDown简单易用,但在IE和Safari中有一个比较明显的性能缺 陷,当数据量大,并且用户使用鼠标滚轮或键盘上下键选取选项时,这个缺陷非常明显.本文介绍通过修 改Toolkit源代码来解决这个问题.(这个问题应该会比较争议,也许很多人并不将其视为缺陷,视情况 而定吧) 问题重现: 大家可以到ASP.NET AJAX Toolkit官方展示页面