返回首页

简介及目标
在这篇文章中,我们会尝试了解直接消耗在Ajax Web服务的4个重要步骤。在此示例中,我们将创建一个简单的客户的组合框,如下图所示。此客户组合框,将由调用Web服务方法。直接的客户Web服务
{S0}
这里是我为我所有的网友们的小礼物,其中包括各种如天青,WCF,世界自然基金会(WWF)的Silverlight,WPF中,SharePoint和很多more.nbsp NET技术。 视频教程
这整篇文章还展示了在视频格式,您可以查看从。简介
通常的Web服务消费情况如下图所示。浏览器的AJAX控件调用ASP.NET的代码和ASP.NET代码消耗Web服务。但也有情况下,您想直接从Ajax的JavaScript功能,而不是通过后面的代码调用的Web服务调用。本文将展示我们如何可以实现相同的
NBSP。的;{S1}步骤1:创建您的客户Classnbsp;
第一步是创建客户类,如下所示。因此,我们的客户类有4个客户ID,名称,地址和指定的属性。

public class Customers

{

// private properties 

private int _intCustomerID;

private string _strFirstName;

private string _strAddress;

private string _strDesignation;



// Public property and 

public int CustomerID

{

get

{

return _intCustomerID;

}

set

{

_intCustomerID = value;

}

}



public string FirstName

{

get

{

return _strFirstName;

}

set

{

_strFirstName = value;

}

}
第2步:创建Web服务
下一步,我们需要创建的Web服务,这暴露了客户我们的UI类。下面是一个简单的Web服务封装了客户收集。在构造函数中,我们如下面的代码片断所示的客户名单加载到一些虚拟的数据:
{C}
我们也暴露出两个功能通过Web服务,给出了一个客户列表,另一个使个别客户的数据基础上的客户ID。第三步:使用ASP参考您的Web服务:将ServiceReference
使用代码> ASP:??的ServiceReference??然后,我们会点到ASMX文件的路径,如下面的代码片断所示。这将生成可用于调用客户对象的JavaScript代理。
<asp:ScriptManager ID="ScriptManager1" runat="server">

<Services>

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

</Services>

</asp:ScriptManager>
第4步:调用WebService和JavaScript代码
一旦你已经定义的代理,你现在可以调用代码>客户代理直接进行方法调用
NBSP的???;
function LoadAll() 

{

Customer.LoadCustomers(LoadCustomerToSelectOption, ErrorHandler, TimeOutHandler);

}

当你调用JavaScript代理对象,我们需要提供三个功能;??第一个函数(代码> LoadCustomerToSelectOption将被称为Web服务时完成并返回数据,这些数据将在返回的??填写变量将被循环和客户组合框添加到。
function LoadCustomerToSelectOption(Fill)

{

var select = document.getElementById("cmbCustomers");



for (var i = 0; i < Fill.length; i++) 

{

var value = new Option(Fill[i].FirstName, Fill[i].CustomerID);

select.options.add(value);

}

}

有两个附加功能;一个处理错误和其他负责处理超时。下面是相同的代码片段:
function ErrorHandler(result) 

{

var msg = result.get_exceptionType() + "\r\n";

msg += result.get_message() + "\r\n";

msg += result.get_stackTrace();

alert(msg);

}

function TimeOutHandler(result) 

{

alert("Timeout :" + result);

}
历史 2010年2月,战后初期

回答

评论会员:afilho 时间:2012/01/25
祝贺。这篇文章是非常好的。
是否有使用这种技术,而不是代码背后advantge?
是它的性能更好?
在此先感谢,

安东尼奥
评论会员:nicholas_pei 时间:2012/01/25
首先感谢的礼物。这是一个使用Web服务的智能和简单的方法。 Greate
评论会员:。 时间:2012/01/25