使用jQuery和ASP.NET Ajax库实现预取模式

上个月,我讨论了如何使用 ASP.NET Ajax 库所附带的新功能实现母版-详细信息视图。这组新功能包括用于客户端实时数据绑定的语法以及丰富呈现组件(例如 DataView 客户端控件)。通过结合使用这些功能,您可轻松构建嵌套视图以表示一对多数据关系。

在 ASP.NET Ajax 库中,母版-详细信息视图的机制主要按 DataView 组件处理和公开其事件的方式在该组件的逻辑代码中定义。

本月我将更进一步,讨论如何以 ASP.NET Ajax 库为基础,实现“预取”这一常见和热门的 AJAX 设计模式。基本上,我将扩展上个月的示例(一个向下钻取客户详细信息的相对标准的视图),以自动和异步方式下载并显示相关订单(如果存在)。在此期间,我将谈及一些 jQuery 相关事项,并了解一下 ASP.NET Ajax 库中的新 jQuery 集成 API。闲话少说,让我们看看上下文并构建第一个版本的示例。

要扩展的演示

图 1 显示了我将以之为基础来添加预取功能的应用程序方案。

图 1 示例应用程序的初始阶段

用户可通过菜单栏按名称首字母筛选客户。进行选择后,会通过 HTML 项目符号列表显示较小的客户列表。这是母版视图。

呈现的每一项都已成为可选择的项。单击某项会使该客户的详细信息显示在相邻的详细信息视图中。上个月我就讨论到此处。如您在图 1 中所见,用户界面现在显示一个用于查看订单的按钮。我现在从此处开始继续讨论。

要做的第一个决策是关于体系结构的,并与要考虑的用例有关。要如何加载订单信息?这些信息是否已随客户信息一起下载?订单是否附加到客户?此处是否可选择延迟加载?

我们所考虑的代码应在客户端运行,因此不能依赖构建到某些对象/关系建模 (O/RM) 工具(如实体框架或 NHibernate)中的延迟加载功能。如果订单要延迟加载,则所有代码都要由您自己完成。另一方面,如果可以假设订单已在客户端可用(即订单已与客户信息一起下载),则您已完成了大部分工作。接下来只需将订单数据绑定到某个 HTML 模板并执行即可。

显然,如果您需要延迟加载,则事情会变得更加有趣。那么,我们便来处理此方案。

另外,您应知道,如果通过 AdoNetDataContext 对象获得数据,则可完全支持延迟加载。(我会在将来的文章中对此进行讨论。)有关详细信息,请务必查看 asp.net/ajaxlibrary/Reference.Sys-Data-AdoNetServiceProxy-fetchDeferredProperty-Method.ashx。

时间: 2016-01-11

使用jQuery和ASP.NET Ajax库实现预取模式的相关文章

使用ASP.NET Ajax库的母版-详细信息视图

提到数据驱动的网页时,您往往会想到具有一些交叉相关数据的母版-详细信 息视图.母版-详细信息视图非常适合呈现一对多的关系,此类关系在实际中相 当普遍,但 Web 平台不适合这种功能,因为它不具有实现该功能的有效工具集 . ASP.NET Web 窗体始终提供强大的数据绑定支持和一组功能强大的数据源和 数据绑定服务器控件.在 Web 窗体中,服务器控件几乎可以使用网格.列表和 下拉框的任意可能组合并支持多个级别的嵌套,从而能够出色地呈现数据的层次 结构. Web 窗体服务器控件生成的视图的缺陷并不

ASP.NET AJAX Advance Tips & Tricks (5) UpdatePanel与jQuery

前言 现在越来越多的朋友喜欢将jQuery和ASP.NET AJAX 一起来用,最近,许多印度人在forum里抱怨说 UpdatePanel和jQuery不兼容,许多jQuery效果在UpdatePanel更新之后就不work.本篇通过分析两者的框 架结构来解决这个兼容性问题. 问题重现: 1.在页面中添加ScriptManager和UpdatePanel 2.在UpdatePanel中添加元素A 3.用jQuery对元素A添加X效果 4.在UpdatePanel中加一个ButtonB用作pos

剖析ASP.NET AJAX的面向对象思想

ajax|asp.net|对象     人们期待已久的ASP.NET AJAX v1.0正式版终于发布了.现在你能用Microsoft ASP.NET AJAX的javascript很容易的写出丰富的.交互式的web应用.尤其值得关注的是Microsoft AJAX Library增加了面向对象的支持,而以前javascript是不支持面向对象开发的.现在icrosoft AJAX Library能很好的支持类.名字空间.继承.接口.枚举.反射等特征.这些新增加的功能类似于.NET Framew

使用Jquery应用到Asp.net ajax中时应该避免的3个误区

Ajax中使用json这个轻量级数据类型通信的好处相信大家已经很清楚,考虑到安全问题,Asp.net Ajax的webService使用json,应该防止Json Hijacking.因此通常我们的做法是在使用Post请求式,并将 请求的content-type设置成application/json; charset=utf-8.但客户端如果你使用的是Jquery,有三 个细节问题是我们应该注意的: 1 :如果我们Post时没有任何数据传给服务端,请指定Data:{} 如: Code 1 $.a

使用ASP.NET AJAX和JQuery一起解决翻页选择的问题

1. 前言 开发项目中经常会遇到要求用户选择列表中数据的问题,例如选择允许参加某个活动 的用户.选择允许参加某个项目的省市或地区,在数据量较小的情况下,我们可以把所有数据使用任何一 种数据绑定控件显示出来并在每一个数据项前面显示复选框,但在数据量比较大时同时显示全部数据显然 不太合适,我们首先考虑到的是使用分页.但是在使用分页后问题也随之而来,如何在切换分页时同时保 持已选中项目,有些开发人员可能使用服务器端代码编写保存在Session中,这种方式最大的弊端在于每 次都向服务器端提交,并且由于这

asp.net AJAX验证用户名是否存在 -Jquery

异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用JQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象.大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选

ASP.NET AJAX 4.0 Preview 3(Part 1

自从Microsoft与jQuery合作以来,ASP.NET AJAX与jQuery就被定位为两个互补的AJAX库.既然jQuery 已经实现了如此多轻量级的AJAX特性,自然ASP.NET AJAX会继续专注于富客户端所需的一些重量级特性. 在ASP.NET AJAX 4.0 Preview 3里面,开发人员能够接触到的两个重要的新特性就是ADO.NET Data Service Client Library以及ASP.NET AJAX Template.对于熟悉ASP.NET服务器端开发但不

ASP.NET Ajax Library功能简介

ASP.NET Ajax Library中的一些功能,以及和jQuery的整合方式.首先来看ASP.NET Ajax Library中Client Controls的使用(底下的范例是水印的TextBox): 以下为引用的内容: <head>      <title>Untitled Page</title>      <style type="text/css">          .wm {            color:Gray

[ASP.NET AJAX]Function对象及Type类的方法介绍

ajax|asp.net|对象 上一回我们从总体上认识了JavaScript Microsoft AJAX Library由于临时有事,没有加入事例显得有点抽象,这一回一定会通过一些事例更加直观的来会一会Asp.NET Ajax脚本库中一个很是重要的类Type.这个类提供了一些扩展面向对象编程的一些反射方法,通过这个类我们可以注册类似.NET中的一些(如:命名空间,类,枚举等等)基本类型.这个Type类继承自window是一个Global类型,不属于任何命名空间.下面我们来看看Type中的一些基