Asp.Net 和 AJAX.Net 的区别第1/2页
以上示例首先告知 Ajax.NET 在 Sample 类中查找友好的 Ajax 方法。它正好是与实际页相同的类,但是它可以是任意 .NET 类,或可以注册多个类。然后,Ajax.NET 将浏览指定的类,来查找标有 AjaxMethodAttribute 的所有方法,其中 Sample 类有一个 GetMessageOfTheDay。 完成后,剩下唯一要做的就是在 JavaScript 中使用它。Ajax.NET 自动创建与注册的类具有相同名称的 JavaScript 变量(在本例中将为 Sample),它提供与 AjaxMethod 具有相同名称的函数(在本例中为 GetMessageOfTheDay)。如下所示。 <script language="javascript"> Sample.GetMessageOfTheDay(GetMessageOfTheDay_CallBack); function GetMessageOfTheDay_CallBack(response) { alert(response.value); } </script>除了 JavaScript 回调函数以外,JavaScript GetMessageOfTheDay 还需要与其服务器端对应部分相同的参数(在此情况下,没有参数),以便在完成时执行并传递响应。在此,我们看到 AJAX 在工作时的异步特性,因为对 GetMessageOfTheDay 的调用不阻碍执行其他 JavaScript 代码,也不阻碍用户继续在页上进行操作。完成服务器端处理时,Ajax.NET 调用指定的回调函数 GetMessageOfTheDay_CallBack,并向其传递由服务器端返回值组成的响应。 服务器端代码和 JavaScript 代码之间的映射可能有些混乱。图 1 简要显示了服务器端代码和 JavaScript 代码,以及两者之间的映射。 图 1:服务器端代码和 JavaScript 代码之间的映射 当然令人感兴趣的 Ajax.NET 还有更多内容值得介绍,例如对 .NET 类型的支持和丰富的回调响应(它不仅仅是值)。以下示例将会重点介绍某些功能,希望帮助您理解 AJAX 如何帮助您创建成功的应用程序。 示例 1:链接的下拉列表 本文的开始简要地讨论了用于链接两个 DropDownList 的两种传统方法。当选定的索引更改时,返回页;或者将所有可能的数据加载到 JavaScript 数组并动态显示。希望您可以看到 AJAX 如何替代这两种解决方案。 首先,让我们来看一下我们的数据界面,并从该数据界面驱动示例。我们的数据访问层将提供两种方法:第一种方法将检索系统支持的国家/地区的列表,第二种方法将获取国家/地区 ID 并返回州/省的列表。由于这是纯数据访问,因此我们只需要使用方法。 //C# public static DataTable GetShippingCountries(); public static DataView GetCountryStates(int countryId); 'VB.NET Public Shared Function GetShippingCountries() As DataTable Public Shared Function GetCountryStates(ByVal countryId As Integer) As DataView现在,让我们转到相反面,创建简单的 Web 窗体。 <asp:DropDownList Runat="server" /> <asp:DropDownList Runat="server" /> <asp:Button Runat="server" Text="Submit" />Page_Load 事件同样简单,和前述的 Web 窗体一样。我们使用数据访问层来检索可用的国家/地区,并将其绑定到 countriesDropDownList 中。 //C# if (!Page.IsPostBack) { countries.DataSource = DAL.GetShippingCountries(); countries.DataTextField = "Country"; countries.DataValueField = "Id"; countries.DataBind(); countries.Items.Insert(0, new ListItem("Please Select", "0")); }通常,代码到此为止。首先,我们将创建要从 JavaScript 调用的服务器端函数。 'VB.NET <Ajax.AjaxMethod()> _ Public Function GetStates (ByVal countryId As Integer) As DataView Return DAL.GetCountryStates(countryId) End Function1 (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |