第1章 万事开头难,从了解AJAX开始学起1.1 AJAX的用户观点 1
1.2 AJAX的开发人员观点 3
1.3 使用AJAX的思考 6
1.4 AJAX应用现状 9
结语 10
第2章 迈向解密之路,ASP.NET AJAX技术综述2.1 什么是ASP.NET AJAX 12
2.2 探讨ASP.NET AJAX的架构 13
2.3 探讨ASP.NET AJAX服务器端功能 14
2.4 探讨ASP.NET AJAX的客户端功能 15
2.5 关于ASP.NET AJAX Control Toolkit 15
结语 15
第3章 实现的第一步,使用UpdatePanel异步局部更新页面3.1 如何异步局部更新页面 16
3.1.1 整页更新vs异步局部更新 17
3.1.2 实现异步局部更新 19
页面范例1—异步更新的日期选取界面 22
页面范例2—异步更新的日期选取界面 24
页面范例3—异步的步进式界面 24
页面范例4—异步的产品列表查看界面 25
页面范例5—异步的订货金额总和查看界面 27
页面范例6—异步的2D饼图查看界面 29
页面范例7—异步的3D饼图查看界面 33
页面范例8—异步的添加、修改与删除数据界面 37
3.2 探讨UpdatePanel控件的运作方式 41
3.3 探讨UpdatePanel控件的使用模式 41
页面范例—示范如何在模板中使用UpdatePanel控件 41
3.4 探讨UpdatePanel控件内容的更新时机 42
页面范例—异步的购物车界面 43
3.5 探讨UpdatePanel控件的触发器 45
页面范例1—示范定义UpdatePanel控件的Triggers属性 48
页面范例2—示范定义UpdatePanel控件的Triggers属性 48
页面范例3—异步男女平均薪资2D饼图查看界面 49
页面范例4—异步男女平均薪资3D饼图查看界面 50
页面范例5—异步的一对多界面 50
页面范例6—异步的书籍目录查看界面 51
页面范例7—异步的产品数据搜索界面 53
页面范例8—异步的自行车产品查看界面 54
页面范例9—示范如何协调两个UpdatePanel控件之间的互动 56
页面范例10—异步的格式化与数据列求和界面 57
页面范例11—异步的添加、修改与删除数据界面(一) 58
页面范例12—异步的添加、修改与删除数据界面(二) 58
页面范例1 3—结合GridView DetailsView的异步添加、修改与删除数据界面(含删除确认功能) 59
页面范例14—示范如何更新其他UpdatePanel控件的内容而不更新本身的内容—非常重要!! 59
页面范例15—示范何时需要将UpdatePanel的触发器设定成由其内部的控件事件来引发 61
3.6 何时需要使用触发器类型PostBackTrigger 63
页面范例1—示范如何在UpdatePanel中使用FileUpLoad控件 64
面面范例2—搭配使用File Upload与UpdatePanel控件来制作具备照片查看和编辑功能的添加、修改与删除数据界面 65
3.7 如何以嵌套方式使用UpdatePanel控件 70
页面范例1—以嵌套化方式查看产品类别与产品资料 73
页面范例2—嵌套化的购物车 74
页面范例3—动态变更照片显示比例 81
3.8 如何在主控页面中使用UpdatePanel控件 83
页面范例1—示范如何在主控页面中使用ScriptManager控件 83
页面范例2—示范使用主控页面上的控件来局部更新内容页面内的UpdatePanel控件中的内容 84
页面范例3—示范使用主控页面上的控件来局部更新内容页面内的UpdatePanel控件中的内容 88
页面范例4—示范如何在内容页面中使用ScriptManagerProxy控件 89
3.9 哪些控件不兼容于UpdatePanel 91
页面范例—搭配使用TreeView与UpdatePanel控件 93
第4章 一切尽其在我,探讨UpdatePanel的可编程功能 93
4.1 如何以编程方式更新一个UpdatePanel控件 95
页面范例1—以程序代码来实现更新UpdatePanel控件(一) 95
页面范例2—以程序代码来实现更新UpdatePanel控件(二) 98
页面范例3—以编程方式局部更新薪资数据与2D饼图 99
页面范例4—以编程方式局部更新产品类别照片与产品资料 102
页面范例5—异步的自行车产品目录—重要!! 106
页面范例6—异步的照片相簿—重要!! 114
页面范例7—异步的水平滚动相簿—非常重要!! 121
页面范例8—示范通过调用Update方法来灵活地显示与更新信息 127
4.2 如何以编程方式创建一个UpdatePanel控件 129
页面范例1—示范如何动态为页面添加一个UpdatePanel控件 130
页面范例2—示范如何整齐排列动态添加页面中的UpdatePanel控件的内容 131
页面范例3—示范如何动态为页面添加多个UpdatePanel控件(一) 133
页面范例4—示范如何动态为页面添加多个UpdatePanel控件(二) 137
页面范例5—示范如何动态为页面添加内含数据绑定控件的UpdatePanel控件 138
4.3 如何在自定义控件中启用局部更新功能 142
页面范例—示范创建一个启用局部更新功能的自定义控件 142
4.4 自定义UpdatePanel控件的错误处理 148
页面范例—示范如何捕捉与显示错误信息 148
4.5 使用JavaScript程序代码来自定义UpdatePanel控件的错误处理 150
页面范例—示范如何自定义局部更新期间的错误处理 150
第5章 悠游于异步之间,探索PageRequestManager5.1 什么是PageRequestManager 154
5.2 如何取得PageRequestManager的实例 154
5.3 客户端页面生命周期事件 155
5.4 如何取消异步回送 158
页面范例1—示范如何取消一个正在执行中的异步回送 158
页面范例2—示范如何让一个异步回送拥有较高的优先级 164
页面范例3—示范采用默认的“后者为赢”的优先级处理模式 169
5.5 如何让UpdatePanel控件动起来 171
页面范例1—示范如何更新UpdatePanel控件并让它晃动 171
页面范例2—示范如何只让特定的UpdatePanel控件产生晃动效果 173
5.6 自定义局部更新的错误处理 176
页面范例1—示范如何自定义局部更新的错误处理 177
页面范例2—示范如何自定义局部更新的错误处理 180
第6章 别让用户干着急,善用UpdateProgress控件 180
6.1 自定义UpdateProgress控件的内容 182
6.2 了解UpdateProgress控件的转译方式 182
6.3 探讨UpdateProgress控件的显示时机 183
页面范例1—异步数据与照片查看界面 184
页面范例2—异步邮件发送界面 189
页面范例3—各部门男女平均薪资的3D饼图查看界面 192
页面范例4—异步平行输入输出界面 196
6.4 使用JavaScript程序代码来显示与隐藏UpdateProgress控件 199
页面范例—异步的章节目录提取界面 199
第7章 定时操作的最佳利器,善用Timer控件 199
7.1 Timer控件的运作机制 203
7.2 Timer控件的使用模式 203
7.3 Timer控件的摆放位置与其影响 204
7.4 Timer控件范例集锦 208
页面范例1—定时显示性能计数器 209
页面范例2—定时更新多个统计图 213
页面范例3—自动播放相簿 216
第8章 酷炫效果营造者,探讨AJAX Control Toolkit(上)8.1 如何将AJAX Control Toolkit控件添加到Visual Studio 2005工具箱 222
8.2 如何添加AJAX Control Toolkit控件的命名空间 225
8.3 探讨控件与扩展器的差异 226
8.4 探讨“可折叠面板”与“可折叠”控件 227
页面范例1—如何使用“可折叠”控件展开或收缩内容 230
页面范例2—在页面问卷中,使用可折叠控件以免版面过长 233
页面范例3—示范使用可折叠控件的数据绑定功能,动态绘制柱形图 233
页面范例4—将可折叠控件绑定至ObjectDataSource,通过Web服务存取XML格式的留言数据文件 234
页面范例5—使用SqlDataSource作为可折叠控件的数据源,并搭配多利Control Too1kit 235
页面范例6—使用JavaScript为“可折叠控件”添加新属性,使其看起来如同“可收缩面板” 237
8.5 形影不离 239
页面范例—如何使用“形影不离”扩展器显示服务器状态 240
8.6 动画集锦 243
8.6.1 使用XML声明式语法设定动画集锦 243
页面范例—如何使用“动画集锦”扩展器制作“淡出”效果 247
8.6.2 同时或循序播放动画 248
页面范例1—如何使用<Parallel>与<Sequence>标记组合出不同的动画 249
页面范例2先使用<Sequence>标签,然后再使用<Parallel>标签来产生复合式的“爆炸”动画 250
8.6.3 结合“动作”的动画 252
页面范例1—结合“动作”的动画 253
页面范例2—实现“自动输入完成”来查询书籍数据,并播放“动画”以显示相关信息 256
8.7 自动输入完成 260
页面范例—实现姓名与地址数据的自动输入完成 262
8.8 日历扩展器 267
页面范例1—示范“日历”扩展器的使用模式 269
页面范例2—示范“日历”扩展器来编辑日期类型字段 270
8.9 级联下拉菜单 271
页面范例1—使用“级联下拉菜单”查询订单内容 272
页面范例2—邮政编码选取界面…完全真实数据!!! 277
8.10 可收缩面板 281
页面范例1—示范使用“可收缩面板”来收缩或展开数据内容 283
页面范例2—示范使用“可收缩面板”制作书籍目录 284
页面范例3—示范使用“可收缩面板”展开与折叠统计图表 284
页面范例4—示范如何使用水平式可收缩面板 285
页面范例5—在可折叠控件中应用水平式可收缩面板 286
8.11 确认按钮 287
页面范例—示范使用“确认按钮”再次确认是否执行特定功能 287
8.12 拖拽面板 289
页面范例—示范使用“拖拽面板” 289
8.13 下拉菜单 290
页面范例—创建具备Windows?SharePointTM Server风格的动态下拉菜单 290
8.14 阴影面板 292
页面范例—使用“阴影面板”让页面画面更专业 293
8.15 动态填充 294
页面范例1—使用“动态填充”通过Web服务取得并显示实时天气现况 295
页面范例2—使用页面方法搭配“动态填充”控件读取RSS文章 298
8.16 文本框过滤器 301
页面范例1—使用文本框过滤器—简易计算器 301
页面范例2—如何使用文本框过滤器检查所输入的个人资料是否合乎规定 304
8.17 停靠菜单 305
页面范例1—使用停靠菜单来修改与删除员工数据 306
页面范例2—使用停靠菜单显示存储于数据库的产品的相片 309
8.18 列表搜索 313
页面范例1—使用ListSearchExtender查询邮政编码所在的县市 314
页面范例2—使用“列表搜索”快速找到特定的选项 315
第9章 酷炫效果营造者,探讨AJAX Control Toolkit(下)9.1 探讨输入掩码与输入掩码验证器 316
页面范例—示范如何在DetailsView中,使用“输入掩码”与“输入掩码验证器” 321
9.2 强制弹出 323
页面范例1—使用“强制弹出”提供变更样式的弹出菜单 324
页面范例2—使用“强制弹出”显示相片信息 326
9.3 互斥复选框 326
页面范例—使用“互斥复选框”进行问卷调查 327
9.4 拒绝机器人行为 329
页面范例1—如何使用基本的拒绝机器人行为 331
页面范例2—在“拒绝机器人行为”控件中,利用JavaScript进行检测 332
页面范例3在留言板中,为拒绝机器人行为添加DOM来避免刷屏 335
9.5 数值调整器 338
页面范例1—示范在GridView中使用“数值调整器”来编辑字段值 340
页面范例2—示范如何为“数值调整器”动态添加枚举值 340
页面范例3—调用Web服务来取得递增与递减值 342
9.6 分页项目符号列表 343
页面范例—示范如何使用分页项目符号列表 344
9.7 密码强度性 344
页面范例—示范如何使用“密码强度”扩展器 347
9.8 弹出控件 348
页面范例—示范在GridView控件中使用“弹出控件”扩展器 349
9.9 评级 352
页面范例—示范如何使用“评级”控件 353
9.10 顺序重排列表 354
页面范例—待办事项,可自行拖拽事项决定优先级 356
9.11 可调整大小控件 358
页面范例1—示范如何使用“可调整大小控件” 359
页面范例2—示范如何使用“可调整大小控件”来随意调整GridView控件中的柱形图 360
9.12 圆角 362
页面范例—示范在异步相簿中,使用“圆角”扩展器 363
9.13 滑片 363
页面范例1—使用滑片来调整图片的高度与宽度:由服务器端控制 365
页面范例2—使用滑片来调整图片的高度与宽度:通过JavaScript 367
9.14 相簿播放 368
页面范例1—“相簿播放”扩展器使用示范:逐一指定相片来源 369
页面范例2—“相簿播放”扩展器使用示范:由文件夹取得相片来源 370
9.15 索引标签 371
页面范例—示范如何使用索引标签 373
9.16 水印文本框 375
页面范例—“水印文本框”扩展器使用示范 375
9.17 双态按钮 376
页面范例—双态按钮使用示范 377
9.18 更新面板的动画效果 377
页面范例1—示范如何使用“更新面板动画效果”扩展器赋予UpdatePanel动画效果 378
页面范例2—示范如何使用“更新面板动画效果”扩展器赋予相簿淡入效果 379
9.19 外显型对话框验证器 380
页面范例—示范如何使用“外显型对话框验证器” 381
第10章 JavaScript换新装,注入OOP新灵魂10.1 面向对象功能综述 382
10.2 如何使用命名空间与类 384
实现演练 387
页面范例—示范如何使用命名空间与类 391
10.3 如何使用继承 396
页面范例1—示范如何继承JavaScript类 396
页面范例2—示范如何继承JavaScript类 398
页面范例3—示范如何操作父类及派生子类 403
页面范例4—示范如何继承AJAX Control Toolkit的动画类(一) 407
页面范例5—示范如何继承AJAX Control Toolkit的动画类(二) 410
10.4 如何使用接口 413
页面范例1—示范如何定义与使用类和接口 414
页面范例2—示范如何使用类继承与接口 417
页面范例3—示范如何使用接口变化类功能 422
10.5 如何使用枚举 428
页面范例1—示范如何使用枚举 429
页面范例2—示范如何使用类与枚举 431
10.6 如何使用反射 432
页面范例—示范如何使用类与反射 433
10.7 探讨客户端页面生命周期事件 436
10.7.1 探讨重要的客户端类 437
10.7.2 为客户端事件编写事件处理函数 437
10.7.3 如何使用页面的load与unload事件 437
10.7.4 如何使用其他客户端类的事件 437
10.7.5 客户端事件表列 438
10.7.6 客户端事件执行顺序 439
页面范例—具体查看客户端页面生命周期事件引发顺序 441
10.8 探讨如何引用JavaScript文件 445
页面范例1—示范引用独立存在的Animation.js与Timer.js来播放动画 446
页面范例2—示范引用AjaxControlToolkit.dll组件中的Animation.js与Timer.js来播放动画 448
10.9 探讨Array类型扩展 448
10.10 探讨Boolean类型扩展 449
10.11 探讨Date类型扩展 449
10.12 探讨Error类型扩展 449
10.13 探讨Number类型扩展 450
10.14 探讨Object类型扩展 450
10.15 探讨String类型扩展 450
第11章 外部资源的异步整合,探讨如何于客户端JavaScript调用Web服务11.1 异步通信层功能综述 452
11.1.1 关于AJAX 452
11.1.2 善用JSON 453
页面范例1—客户端序列器与服务器还原序列器 453
页面范例2—服务器序列器与客户端还原序列器 459
11.1.3 送出HTTP请求 462
页面范例—使用WebRequest对象来实现GET与POST Web请求 462
11.2 客户端与服务器间的通信 466
11.2.1 客户端架构 466
11.2.2 服务器架构 467
11.3 客户端类型简介 468
11.4 服务器类型简介 469
11.5 什么是Web服务 469
11.6 如何将Web服务公开给JavaScript 470
11.6.1 公开给JavaScript调用的Web服务所需满足的条件 471
11.6.2 如何在页面中注册JavaScript所要调用的Web服务 472
页面范例1—使用JavaScript调用Web服务来执行异步数据库查询 474
页面范例2—使用JavaScript调用Web服务时的错误处理 477
页面范例3—如何使用HTTP GET verb来调用一个Web服务方法 479
页面范例4—使用JavaScript调用一个会返回XmlDocument对象的Web服务方法 481
页面范例5—结合JavaScript调用Web服务方法与ASP.NET AJAX Control Toolkit的缩放式异步查询界面 484
11.7 如何让多个Web服务方法共享同一个成功回调函数 490
页面范例—示范利用用户内容与方法名称判断调用者 490
11.8 如何传递与接收复杂类型 492
页面范例1—传递与接收复杂类型的自定义色彩对象 492
页面范例2—传递与接收复杂类型的自定义菜单对象 496
11.9 如何使用JavaScript调用远程Web服务 503
页面范例—实现RSS订阅器 503
11.10 如何使用JavaScript调用页面方法 510
页面范例—结合JavaScript与页面方法制作一个自动输入完成文本框 510
11.11 如何使用JavaScript序列器并解析Web服务所返回的DataSet、DataTable或DataRow对象 524
页面范例—示范使用JavaScript序列器并解析Web服务所返回的DataSet、DataTable或DataRow对象 526
第12章 探讨如何于客户端JavaScript调用ASP.NET应用程序服务12.1 如何通过JavaScript使用窗体验证 536
12.1.1 探讨AuthenticationService类的方法 536
12.1.2 探讨AuthenticationService类的属性 538
12.1.3 使用JavaScript来调用验证服务 543
页面范例—示范如何在应用程序中调用窗体验证的Web服务 545
12.2 用户配置文件 551
12.2.1 探讨ProfileService类的属性字段 551
12.2.2 探讨ProfileService类的方法 551
12.2.3 探讨ProfileService类的属性 552
12.2.4 探讨ProfileGroup类 556
12.2.5 使用JavaScript来调用用户配置文件服务 557
页面范例1—调用用户配置文件服务来取得与设置页面前景色和背景色 558
页面范例2—示范如何通过客户端与服务器端程序代码存取用户配置文件 566
第13章 缝制新装为自己量身打造才有趣——探讨创建具备客户端功能的组件13.1 如何创建自定义的客户端DOM元素事件 571
13.1.1 如何将事件处理函数绑定至DOM元素事件 571
页面范例—示范如何将事件处理函数绑定至DOM元素事件 572
13.1.2 如何创建与移除自定义的事件处理函数 573
13.1.3 如何引发自定义事件 574
13.2 如何创建非可视客户端组件 574
页面范例—示范如何创建与使用非可视客户端组件 575
13.3 如何创建客户端行为 581
13.4 如何创建客户端控件 582
页面范例1—查看客户端控件的执行效果 583
页面范例2—实现具备鼠标移入、移出与单击功能的客户端控件 587
13.5 如何创建扩展器 593
页面范例1—示范如何创建与使用扩展器 595
页面范例2—验证身份证号码的扩展器 599
13.6 如何将扩展器编译成组件 602
13.7 如何创建具备客户端功能的Web服务器控件 604
页面范例1—示范如何创建与使用具备客户端功能的Web服务器控件 606
页面范例2—示范如何创建与使用具备验证身份证号码客户端功能的Web服务器控件 609
附录 范例安装与使用说明 610
A.1 安装SQL Server 2005 Express Edition 610
A.2 安装范例数据库并复制范例网站 610
A.3 使用网页范例 610
A.4 注意事项 611
A.5 如何查看研讨会实况影片 611