书籍详情
ASP.NET AJAX编程参考手册(涵盖ASP.NET 3.5及2.0)
作者:(美)霍斯拉维 著,刘志忠 译
出版社:清华大学出版社
出版时间:2009-03-01
ISBN:9787302194828
定价:¥168.00
购买这本书可以去
内容简介
本书以AJAX为核心阐述对象,介绍了它对JavaScript所做的各种扩展,还介绍了在ASP.NET环境下创建客户端应用所需的一些核心控件。通过大量的实例,《ASP.NET AJAX编程参考手册:涵盖ASP.NET 3.5及2.0》详述了AJAX的内部机制,并且紧跟时代潮流,重点描述了如何依靠异步通信机制,更快、更好、更有效地实现客户端和服务器端之间的通信。
作者简介
Shahram Khosravi,博士。他是一名资深的软件工程师、顾问、作家和讲师。在面向对象的分析、设计和编程方面有十多年的经验。讲授课程包括ASPNET、Web服务、.NET技术、XML技术、C#等。Shahr8m还撰写了多本关于ASP、NET的书,并在微软的MSDN存线文档以及Dr.Dobb’S Journal、asp.neetPRO等杂志上发表技术文章多篇。译者简介:刘志忠,博士,毕业于国防科技大学计算机科学与技术专业,现仟解放军理工大学指挥自动化学院教员。主要研究基于Web,E报务的分布式计算技术,精通.NET、Java、C++和VB等程序设计语言,对AJAX和HTML技术也有深入的了解,具有多年程序开发经验,曾参与973、863、国家自然科学基金等科研项目。业余时间以写文章,翻译图书为乐,译著包括《CSS基础教程》等。
目录
第1章 AJAX相关技术 1
1.1 GoogleSuggest 1
1.2 XMLHttpRequest 3
1.3 XML 13
1.4 JSON 17
1.4.1 对象 17
1.4.2 数组 17
1.4.3 字符串 17
1.4.4 数字 18
1.4.5 null、true和false 18
1.5 ASP.NETAJAX 21
1.6 安装ASP.NETAJAXExtensions和ASP.NETFutures 22
1.7 小结 22
第2章 JavaScript基本类型扩展 23
2.1 ASP.NETAJAXArray类型扩展 23
2.1.1 add 24
2.1.2 addRange 24
2.1.3 clear 25
2.1.4 clone 25
2.1.5 contains 26
2.1.6 enqueue和dequeue 26
2.1.7 forEach 28
2.1.8 indexOf 29
2.1.9 insert 30
2.1.10 parse 30
2.1.11 remove 31
2.1.12 removeAt 31
2.2 ASP.NETAJAXBoolean类型扩展 32
2.3 ASP.NETAJAXDate类型扩展 32
2.4 ASP.NETAJAXObject类型扩展 33
2.5 ASP.NETAJAXString类型扩展 33
2.5.1 endsWith 33
2.5.2 startsWith 34
2.5.3 trim 34
2.5.4 格式化 35
2.6 ASP.NETAJAXError类型扩展 35
2.6.1 create 36
2.6.2 popStackFrame 38
2.6.3 popStackFrame的内部机理 41
2.7 小结 44
第3章 内置的和自定义异常类型 45
3.1 ASP.NETAJAX内置异常类型 45
3.1.1 ArgumentException 45
3.1.2 ArgumentNullException 47
3.1.3 ArgumentOutOfRangeException 49
3.1.4 ArgumentTypeException 51
3.1.5 ArgumentUndefinedException 53
3.1.6 InvalidOperationException 55
3.1.7 NotImplementedException 56
3.1.8 ParameterCountException 57
3.2 实现自定义异常类型 59
3.2.1 实现自定义异常类型的流程 59
3.2.2 使用流程 60
3.2.3 clickCallback 63
3.2.4 validateInput 64
3.3 小结 64
第4章 JavaScript面向对象编程和类型反射扩展 65
4.1 JavaScript函数 65
4.2 JavaScript类 66
4.3 Type 67
4.4 registerClass 68
4.5 getName 70
4.6 isClass 71
4.7 registerNamespace 72
4.8 isNamespace 74
4.9 registerInterface 75
4.10 getInterfaces 78
4.11 isInterface 80
4.12 继承 81
4.13 getBaseType 84
4.14 initializeBase 87
4.15 resolveInheritance 87
4.16 callBaseMethod 88
4.17 getBaseMethod 93
4.18 implementsInterface 96
4.19 inheritsFrom 100
4.20 isImplementedBy 102
4.21 getRootNamespaces 104
4.22 parse 106
4.23 registerEnum 108
4.24 isEnum 109
4.25 isFlags 110
4.26 小结 110
第5章 事件编程模型扩展 111
5.1 事件编程模型 111
5.1.1 Sys.EventArgs 112
5.1.2 Sys.CancelEventArgs 112
5.1.3 EventHandlerList 112
5.2 使用事件编程 116
5.2.1 基本类 117
5.2.2 事件 122
5.2.3 ShoppingCart 130
5.2.4 添加一个事件处理程序 134
5.2.5 移除一个事件处理程序 134
5.3 小结 135
第6章 DOM扩展 136
6.1 DomElement 136
6.1.1 getElementById 136
6.1.2 addCssClass 141
6.1.3 containsCssClass 141
6.1.4 removeCssClass 141
6.1.5 toggleCssClass 143
6.1.6 getLocation 144
6.1.7 setLocation 145
6.1.8 getBounds 147
6.2 MouseButton 148
6.3 Key 149
6.4 委托 149
6.4.1 Namespace 155
6.4.2 Mover 155
6.4.3 TextProvider 155
6.4.4 ImageProvider 156
6.5 DomEvent 156
6.5.1 构造函数 157
6.5.2 静态方法 159
6.5.3 实例方法 166
6.6 使用DomEvent类 170
6.6.1 Mover 176
6.6.2 TableProvider 180
6.7 小结 181
第7章 组件开发基础设施 182
7.1 接口 182
7.1.1 IDisposable 183
7.1.2 INotifyDisposing 186
7.1.3 INotifyPropertyChange 189
7.2 组件 194
7.3 IContainer 196
7.4 应用 197
7.4.1 addComponent 198
7.4.2 removeComponent 199
7.4.3 getComponents 199
7.4.4 findComponent 200
7.5 应用生命周期 201
7.6 组件生命周期 205
7.7 继续应用生命周期之旅 209
7.7.1 endCreateComponents 209
7.7.2 raiseLoad 211
7.7.3 应用生命周期小结 212
7.8 应用层事件 213
7.8.1 Init 213
7.8.2 load 214
7.8.3 unload 214
7.9 可丢弃对象 214
7.10 使用Application对象和Component基类 217
7.10.1 dispose 217
7.10.2 initialize 220
7.10.3 id 222
7.10.4 raisePropertyChanged 222
7.10.5 get_events 223
7.10.6 INotifyPropertyChange 224
7.10.7 INotifyDisposing 224
7.11 小结 230
第8章 开发客户端控件 231
8.1 Control 231
8.1.1 定义 231
8.1.2 get_element 232
8.1.3 get_id 233
8.1.4 set_id 233
8.1.5 set_parent 233
8.1.6 get_parent 234
8.1.7 get_visibilityMode 234
8.1.8 get_visible 235
8.1.9 set_visibilityMode 235
8.1.10 set_visible 236
8.1.11 addCssClass 236
8.1.12 removeCssClass 236
8.1.13 toggleCssClass 237
8.1.14 dispose 237
8.1.15 onBubbleEvent 237
8.1.16 raiseBubbleEvent 238
8.2 开发自定义客户端控件 238
8.3 客户端Label控件 239
8.3.1 构造函数 239
8.3.2 htmlEncode 239
8.3.3 text 240
8.3.4 prototype 241
8.3.5 descriptor 241
8.4 使用Label客户端控件 242
8.5 客户端Image控件 244
8.5.1 构造函数 244
8.5.2 prototype 244
8.5.3 imageURL 245
8.5.4 width 245
8.5.5 height 246
8.5.6 alternateText 246
8.6 使用Image客户端控件 246
8.7 扩展客户端Image控件 248
8.7.1 构造函数 251
8.7.2 prototype 252
8.7.3 imageURL 252
8.7.4 mouseOverImageURL 253
8.7.5 mouseOverCallback 253
8.7.6 mouseOutCallback 254
8.7.7 Duration 254
8.7.8 transition 255
8.7.9 Transition枚举类型 255
8.7.10 initialize 256
8.7.11 dispose 256
8.8 使用客户端Image2控件 257
8.9 HyperLink客户端控件 259
8.9.1 构造函数 259
8.9.2 prototype 259
8.9.3 navigateURL 259
8.9.4 initialize 260
8.9.5 add_click 260
8.9.6 remove_click 261
8.9.7 _onClick 261
8.9.8 dispose 261
8.9.9 descriptor 262
8.10 使用HyperLink客户端控件 262
8.11 小结 264
第9章 事件冒泡机制及客户端Button控件 265
9.1 CommandEventArgs 265
9.2 客户端Button控件 266
9.2.1 构造函数 267
9.2.2 prototype属性 267
9.2.3 argument属性 267
9.2.4 command属性 268
9.2.5 initialize方法 268
9.2.6 add_click方法 269
9.2.7 _onClick 269
9.2.8 dispose 270
9.2.9 descriptor 270
9.3 使用客户端Button控件 271
9.3.1 捕获一个冒泡的事件 271
9.3.2 冒泡一个事件 276
9.4 小结 286
第10章 类型描述扩展 287
10.1 TypeDescriptor 287
10.1.1 构造函数 288
10.1.2 getTypeDescriptor 304
10.1.3 getProperty 308
10.1.4 getAttribute 310
10.1.5 setProperty 311
10.1.6 invokeMethod 315
10.1.7 getPropertyType 316
10.2 使用ASP.NETAJAX类型描述能力 317
10.2.1 StringBuilder 318
10.2.2 CustomTable 321
10.3 动态注入元数据信息 329
10.3.1 addProperty 329
10.3.2 addMethod 330
10.3.3 addEvent 331
10.3.4 addAttribute 332
10.4 ICustomTypeDescriptor 332
10.5 小结 334
第11章 数据类 335
11.1 IData 335
11.2 DataColumn 336
11.3 DataRow 339
11.3.1 构造函数 339
11.3.2 descriptor 340
11.3.3 ICustomTypeDescriptor 341
11.3.4 Owner 345
11.3.5 INotifyPropertyChange 346
11.4 DataTable 347
11.4.1 构造函数 347
11.4.2 IData 349
11.4.3 Descriptor 356
11.4.4 INotifyPropertyChange 357
11.4.5 InotifyCollectionChanged 359
11.4.6 createRow 362
11.4.7 getChanges 363
11.4.8 getColumn 364
11.4.9 raiseRowChanged 365
11.4.10 parseFromJson 365
11.5 使用DataColumn、DataRow和DataTable 367
11.6 小结 376
第12章 客户-服务器通信 377
12.1 WebRequest 377
12.1.1 构造函数 377
12.1.2 目标URL 378
12.1.3 HTTP动作 378
12.1.4 请求体 378
12.1.5 超时 379
12.1.6 Web请求执行器 379
12.1.7 请求头 380
12.1.8 completed事件 380
12.1.9 调用一个Web请求 381
12.2 WebRequestExecutor 382
12.2.1 构造函数 382
12.2.2 WebRequest 382
12.2.3 get_started 383
12.2.4 get_responseAvailable 383
12.2.5 get_timedOut 383
12.2.6 get_aborted 384
12.2.7 get_responseData 384
12.2.8 get_statusCode 384
12.2.9 get_statusText 384
12.2.10 get_xml 384
12.2.11 get_object 385
12.2.12 executeRequest 385
12.2.13 abort 385
12.2.14 getResponseHeader 385
12.2.15 getAllResponseHeaders 386
12.3 WebRequestManager 386
12.3.1 构造函数 386
12.3.2 默认超时 387
12.3.3 默认执行器类型 387
12.3.4 事件 387
12.3.5 执行一个Web请求 389
12.3.6 NetworkRequestEventArgs 390
12.4 XMLHttpRequest 391
12.5 XMLDOM 391
12.6 XMLHttpExecutor 392
12.6.1 构造函数 392
12.6.2 get_timedOut 395
12.6.3 get_started 395
12.6.4 get_responseAvailable 395
12.6.5 get_aborted 396
12.6.6 执行请求 396
12.6.7 getResponseHeader 398
12.6.8 getAllResponseHeaders 399
12.6.9 get_responseData 399
12.6.10 get_statusCode 400
12.6.11 get_statusText 400
12.6.12 get_xml 400
12.6.13 abort 401
12.7 使用WebRequest、WebRequestManager和XMLHttpExecutor 40212.8 小结 422
第13章 通过SOAP消息使用Web服务 423
13.1 构建Web服务 423
13.2 WSDL文档 424
13.2.1 参数的名称、类型和顺序 426
13.2.2 返回值的类型和顺序 426
13.2.3 方法描述 427
13.2.4 描述访问方法的通信协议 427
13.2.5 指定访问方法的站点 428
13.2.6 指定方法类 429
13.3 SOAP消息 429
13.4 小结 441
第14章 通过JSON消息使用Web服务 442
14.1 WebServiceProxy 442
14.1.1 Timeout 442
14.1.2 默认成功回调函数 442
14.1.3 默认失败回调函数 443
14.1.4 路径 443
14.1.5 调用一个Web方法 443
14.2 使用WebServiceProxy 454
14.3 WebServiceError 457
14.4 使用WebServiceError 460
14.5 调用页面方法 464
14.6 调用自定义方法 466
14.7 底层机制 472
14.7.1 ScriptHandlerFactory 472
14.7.2 RestHandlerFactory 476
14.7.3 RestHandler 478
14.7.4 HandlerWrapper 483
14.7.5 页面方法揭秘 484
14.7.6 Web服务桥揭秘 489
14.7.7 使用这些复制品 492
14.8 小结 494
第15章 代理类 495
15.1 什么是代理? 495
15.2 代理类 497
15.2.1 和Web服务相关的代理类 497
15.2.2 和页面方法相关的代理类 502
15.2.3 和自定义类相关的代理类 504
15.3 自动代理类生成 504
15.3.1 声明式方法 505
15.3.2 命令式方法 513
15.3.3 父/子页面 516
15.4 底层机制 518
15.4.1 ScriptManager 518
15.4.2 ServiceReference 522
15.4.3 ClientProxyGenerator 524
15.4.4 RestClientProxyHandler 540
15.5 使用这些复制品 541
15.6 小结 548
第16章 行为 549
16.1 什么是行为? 549
16.2 Behavior类 550
16.2.1 Properties 556
16.2.2 实例方法 559
16.2.3 静态方法 561
16.3 ClickBehavior 562
16.3.1 descriptor 563
16.3.2 click事件 563
16.3.3 initialize 564
16.3.4 使用ClickBehavior 564
16.4 ASP.NETAJAX控件工具箱 566
16.4.1 BehaviorBase 566
16.4.2 TextBoxWatermarkBehavior 571
16.5 小结 588
第17章 服务器端script控件和extender控件 589
17.1 为什么需要服务器端script和extender控件 589
17.2 服务器extender控件 590
17.2.1 IExtenderControl 591
17.2.2 ExtenderControl 591
17.3 服务器script控件 594
17.3.1 IScriptControl 594
17.3.2 ScriptControl 595
17.4 ScriptDescriptor 597
17.4.1 ScriptComponentDescriptor 598
17.4.2 ScriptControlDescriptor 609
17.4.3 ScriptBehaviorDescriptor 610
17.5 ScriptReference 611
17.6 ScriptReferenceCollection 612
17.7 ScriptManager 613
17.7.1 Scripts 618
17.7.2 LoadScriptsBeforeUI 618
17.7.3 ScriptControls 618
17.7.4 RegisterScriptControl 618
17.7.5 ExtenderControls 618
17.7.6 RegisterExtenderControl 619
17.7.7 GetCurrent 619
17.7.8 OnInit 619
17.7.9 Page_PreRenderComplete 619
17.7.10 CollectScripts 620
17.7.11 AddScriptReferencesFor-ScriptControls 621
17.7.12 针对extender控件的RegisterScriptDescriptors 622
17.8 ResolveScriptReference事件 623
17.9 将所有综合在一起 625
17.10 开发一个自定义的服务器端extender控件 626
17.10.1 WatermarkText 630
17.10.2 WatermarkCssClass 630
17.10.3 ClientState 631
17.10.4 ClientStateFieldID 631
17.10.5 CreateClientStateField 631
17.10.6 BehaviorID 631
17.10.7 GetScriptReferences 631
17.10.8 GetScriptDescriptors 631
17.10.9 OnInit 633
17.10.10 Page_PreLoad 633
17.10.11 OnLoad 634
17.10.12 OnPreRender 635
17.10.13 Render 636
17.10.14 使用服务器端extender控件 637
17.11 开发一个script控件 638
17.11.1 PreRender 641
17.11.2 Render 642
17.11.3 使用服务器端script控件 642
17.12 服务器端script控件与服务器端extender控件 643
17.13 小结 643
第18章 Web服务桥和转换器 644
18.1 AmazonWeb服务 644
18.2 开发支持Web服务桥的服务器端script控件 650
18.2.1 AspNetAjaxAmazonSearch 651
18.2.2 AmazonSearchScriptControl 658
18.2.3 HtmlGenerator 665
18.2.4 HtmlGeneratorScriptControl 669
18.2.5 使用这些组件 676
18.3 转换器 678
18.4 使用转换器 687
18.4.1 XmlBridgeTransformer 687
18.4.2 XsltBridgeTransformer 707
18.5 小结 714
第19章 UpdatePanel和ScriptManager 715
19.1 让异步的局部页面更新成为可能 715
19.2 条件更新 717
19.2.1 子元素作为触发器 719
19.2.2 一个UpdatePanel包含在另一个UpdatePanel内 720
19.2.3 使用触发器 729
19.2.4 命令式更新 731
19.3 开发支持局部更新的自定义组合服务器控件 733
19.3.1 BaseMasterDetailControl 734
19.3.2 BaseMasterDetailControl2 753
19.4 小结 756
第20章 在用户控件和自定义控件中使用UpdatePanel 757
20.1 MasterDetailControl 757
20.1.1 CreateBaseDataBoundControl-Master 759
20.1.2 RegisterMasterEventHandlers 759
20.1.3 属性 761
20.2 在Web页面中使用MasterDetailControl 761
20.3 MasterDetailControl2 765
20.3.1 CreateBaseDataBoundControl-Master 767
20.3.2 RegisterMasterEventHandlers 767
20.3.3 Master_SelectedIndexChanged 767
20.3.4 Master_DataBound 767
20.3.5 属性 768
20.4 使用MasterDetailControl2 768
20.5 MasterDetailControl3 770
20.6 使用MasterDetailControl3 771
20.7 MasterDetailControl4 773
20.8 开发支持局部页面更新的数据控件域 773
20.8.1 扩展BoundField 774
20.8.2 覆盖InitializeDataCell 778
20.8.3 处理DataBound事件 779
20.8.4 从单元格中抽取值 780
20.8.5 外观属性 780
20.8.6 使用MasterDetailField 780
20.9 开发支持局部呈现的用户控件 784
20.9.1 显示所有消息 794
20.9.2 显示某消息的细节 795
20.9.3 删除一条消息 796
20.9.4 更新一条消息 797
20.9.5 回复一个消息 797
20.9.6 开始一个新线索 798
20.10 小结 800
第21章页面生命周期和异步的局部页面呈现 801
21.1 处理一个请求 801
21.2 Page生命周期 804
21.3 第一次访问支持局部页面呈现的Web页面 806
21.4 InitRecursive 806
21.4.1 ScriptManager的OnInit方法 807
21.4.2 UpdatePanel的OnInit方法 814
21.4.3 模板化控件 819
21.5 LoadRecursive 826
21.6 Rendering 847
21.6.1 ScriptManager的Render方法 848
21.6.2 UpdatePanel的Render方法 853
21.7 小结 855
第22章 ASP.NETAJAX客户端PageRequest Manager 857
22.1 实例化和初始化客户端PageRequest Manager 858
22.1.1 客户端PageRequest Manager的getInstance方法 859
22.1.2 客户端PageRequest Manager类的构造函数 860
22.1.3 客户端PageRequestManager的_initializeInternal方法 862
22.1.4 _updateControls 867
22.1.5 客户端PageRequest Manager的_pageLoadedInitialLoad方法 871
22.1.6 客户端PageRequestManager的_pageLoaded方法 871
22.2 pageLoaded事件 873
22.3 生成一个异步页面回传 889
22.3.1 辅助方法 889
22.3.2 _doPostBack 894
22.3.3 _onFormSubmit 898
22.4 initializeRequest事件 906
22.5 beginRequest事件 913
22.6 小结 918
第23章 异步局部页面呈现:服务器端处理 919
23.1 RetrievePostData 919
23.2 LoadScrollPosition 922
23.3 InitRecursive 924
23.3.1 PageRequestManager的IsAsync Post Back Request方法 924
23.3.2 PageRequestManager的OnInit方法 925
23.4 LoadPostData生命周期阶段 925
23.4.1 UpdatePanel 929
23.4.2 ScriptManager 929
23.4.3 PageRequestManager的LoadPostData方法 930
23.5 RaisePostDataChangedEvent生命周期阶段 932
23.6 PreRender生命周期阶段 933
23.7 Rendering生命周期阶段 934
23.7.1 PageRequestManager的编码方法 935
23.7.2 PageRequestManager的RenderPageCallback方法 936
23.8 服务器响应 969
23.9 小结 981
第24章 异步局部页面呈现:客户端处理 982
24.1 服务器响应文本的到达 982
24.2 PageRequestManager的_updatePanel方法 1005
24.3 PageRequestManager的registerDisposeScript方法 1006
24.4 _destroyTree方法 1007
24.5 _ScriptLoader类 1008
24.5.1 readLoadedScripts 1008
24.5.2 getInstance方法 1009
24.5.3 queueScriptBlock方法 1009
24.5.4 queueCustomScriptTag方法 1009
24.5.5 isScriptLoaded方法 1010
24.5.6 _getLoadedScript方法 1010
24.5.7 queueScriptReference方法 1010
24.5.8 loadScripts方法 1011
24.5.9 _loadScriptsInternal方法 1012
24.5.10 _createScriptElement方法 1014
24.5.11 _ScriptLoader类的构造函数 1014
24.5.12 _scriptLoaderHandler方法 1014
24.6 _ScriptLoaderTask类 1015
24.6.1 _ScriptLoaderTask类的构造函数 1015
24.6.2 execute方法 1016
24.6.3 _scriptLoadHandler方法 1017
24.7 _scriptsLoadComplete方法 1017
24.8 _endPostBack方法 1020
24.9 pageLoading事件 1025
24.10 pageLoaded事件 1043
24.11 endRequest事件 1045
24.12 小结 1061
附录A XML脚本 1062
附录B 绑定 1104
附录C 动作 1116
附录D 数据控件 1129
附录E 模板化控件 1150
附录F ListView 1173
1.1 GoogleSuggest 1
1.2 XMLHttpRequest 3
1.3 XML 13
1.4 JSON 17
1.4.1 对象 17
1.4.2 数组 17
1.4.3 字符串 17
1.4.4 数字 18
1.4.5 null、true和false 18
1.5 ASP.NETAJAX 21
1.6 安装ASP.NETAJAXExtensions和ASP.NETFutures 22
1.7 小结 22
第2章 JavaScript基本类型扩展 23
2.1 ASP.NETAJAXArray类型扩展 23
2.1.1 add 24
2.1.2 addRange 24
2.1.3 clear 25
2.1.4 clone 25
2.1.5 contains 26
2.1.6 enqueue和dequeue 26
2.1.7 forEach 28
2.1.8 indexOf 29
2.1.9 insert 30
2.1.10 parse 30
2.1.11 remove 31
2.1.12 removeAt 31
2.2 ASP.NETAJAXBoolean类型扩展 32
2.3 ASP.NETAJAXDate类型扩展 32
2.4 ASP.NETAJAXObject类型扩展 33
2.5 ASP.NETAJAXString类型扩展 33
2.5.1 endsWith 33
2.5.2 startsWith 34
2.5.3 trim 34
2.5.4 格式化 35
2.6 ASP.NETAJAXError类型扩展 35
2.6.1 create 36
2.6.2 popStackFrame 38
2.6.3 popStackFrame的内部机理 41
2.7 小结 44
第3章 内置的和自定义异常类型 45
3.1 ASP.NETAJAX内置异常类型 45
3.1.1 ArgumentException 45
3.1.2 ArgumentNullException 47
3.1.3 ArgumentOutOfRangeException 49
3.1.4 ArgumentTypeException 51
3.1.5 ArgumentUndefinedException 53
3.1.6 InvalidOperationException 55
3.1.7 NotImplementedException 56
3.1.8 ParameterCountException 57
3.2 实现自定义异常类型 59
3.2.1 实现自定义异常类型的流程 59
3.2.2 使用流程 60
3.2.3 clickCallback 63
3.2.4 validateInput 64
3.3 小结 64
第4章 JavaScript面向对象编程和类型反射扩展 65
4.1 JavaScript函数 65
4.2 JavaScript类 66
4.3 Type 67
4.4 registerClass 68
4.5 getName 70
4.6 isClass 71
4.7 registerNamespace 72
4.8 isNamespace 74
4.9 registerInterface 75
4.10 getInterfaces 78
4.11 isInterface 80
4.12 继承 81
4.13 getBaseType 84
4.14 initializeBase 87
4.15 resolveInheritance 87
4.16 callBaseMethod 88
4.17 getBaseMethod 93
4.18 implementsInterface 96
4.19 inheritsFrom 100
4.20 isImplementedBy 102
4.21 getRootNamespaces 104
4.22 parse 106
4.23 registerEnum 108
4.24 isEnum 109
4.25 isFlags 110
4.26 小结 110
第5章 事件编程模型扩展 111
5.1 事件编程模型 111
5.1.1 Sys.EventArgs 112
5.1.2 Sys.CancelEventArgs 112
5.1.3 EventHandlerList 112
5.2 使用事件编程 116
5.2.1 基本类 117
5.2.2 事件 122
5.2.3 ShoppingCart 130
5.2.4 添加一个事件处理程序 134
5.2.5 移除一个事件处理程序 134
5.3 小结 135
第6章 DOM扩展 136
6.1 DomElement 136
6.1.1 getElementById 136
6.1.2 addCssClass 141
6.1.3 containsCssClass 141
6.1.4 removeCssClass 141
6.1.5 toggleCssClass 143
6.1.6 getLocation 144
6.1.7 setLocation 145
6.1.8 getBounds 147
6.2 MouseButton 148
6.3 Key 149
6.4 委托 149
6.4.1 Namespace 155
6.4.2 Mover 155
6.4.3 TextProvider 155
6.4.4 ImageProvider 156
6.5 DomEvent 156
6.5.1 构造函数 157
6.5.2 静态方法 159
6.5.3 实例方法 166
6.6 使用DomEvent类 170
6.6.1 Mover 176
6.6.2 TableProvider 180
6.7 小结 181
第7章 组件开发基础设施 182
7.1 接口 182
7.1.1 IDisposable 183
7.1.2 INotifyDisposing 186
7.1.3 INotifyPropertyChange 189
7.2 组件 194
7.3 IContainer 196
7.4 应用 197
7.4.1 addComponent 198
7.4.2 removeComponent 199
7.4.3 getComponents 199
7.4.4 findComponent 200
7.5 应用生命周期 201
7.6 组件生命周期 205
7.7 继续应用生命周期之旅 209
7.7.1 endCreateComponents 209
7.7.2 raiseLoad 211
7.7.3 应用生命周期小结 212
7.8 应用层事件 213
7.8.1 Init 213
7.8.2 load 214
7.8.3 unload 214
7.9 可丢弃对象 214
7.10 使用Application对象和Component基类 217
7.10.1 dispose 217
7.10.2 initialize 220
7.10.3 id 222
7.10.4 raisePropertyChanged 222
7.10.5 get_events 223
7.10.6 INotifyPropertyChange 224
7.10.7 INotifyDisposing 224
7.11 小结 230
第8章 开发客户端控件 231
8.1 Control 231
8.1.1 定义 231
8.1.2 get_element 232
8.1.3 get_id 233
8.1.4 set_id 233
8.1.5 set_parent 233
8.1.6 get_parent 234
8.1.7 get_visibilityMode 234
8.1.8 get_visible 235
8.1.9 set_visibilityMode 235
8.1.10 set_visible 236
8.1.11 addCssClass 236
8.1.12 removeCssClass 236
8.1.13 toggleCssClass 237
8.1.14 dispose 237
8.1.15 onBubbleEvent 237
8.1.16 raiseBubbleEvent 238
8.2 开发自定义客户端控件 238
8.3 客户端Label控件 239
8.3.1 构造函数 239
8.3.2 htmlEncode 239
8.3.3 text 240
8.3.4 prototype 241
8.3.5 descriptor 241
8.4 使用Label客户端控件 242
8.5 客户端Image控件 244
8.5.1 构造函数 244
8.5.2 prototype 244
8.5.3 imageURL 245
8.5.4 width 245
8.5.5 height 246
8.5.6 alternateText 246
8.6 使用Image客户端控件 246
8.7 扩展客户端Image控件 248
8.7.1 构造函数 251
8.7.2 prototype 252
8.7.3 imageURL 252
8.7.4 mouseOverImageURL 253
8.7.5 mouseOverCallback 253
8.7.6 mouseOutCallback 254
8.7.7 Duration 254
8.7.8 transition 255
8.7.9 Transition枚举类型 255
8.7.10 initialize 256
8.7.11 dispose 256
8.8 使用客户端Image2控件 257
8.9 HyperLink客户端控件 259
8.9.1 构造函数 259
8.9.2 prototype 259
8.9.3 navigateURL 259
8.9.4 initialize 260
8.9.5 add_click 260
8.9.6 remove_click 261
8.9.7 _onClick 261
8.9.8 dispose 261
8.9.9 descriptor 262
8.10 使用HyperLink客户端控件 262
8.11 小结 264
第9章 事件冒泡机制及客户端Button控件 265
9.1 CommandEventArgs 265
9.2 客户端Button控件 266
9.2.1 构造函数 267
9.2.2 prototype属性 267
9.2.3 argument属性 267
9.2.4 command属性 268
9.2.5 initialize方法 268
9.2.6 add_click方法 269
9.2.7 _onClick 269
9.2.8 dispose 270
9.2.9 descriptor 270
9.3 使用客户端Button控件 271
9.3.1 捕获一个冒泡的事件 271
9.3.2 冒泡一个事件 276
9.4 小结 286
第10章 类型描述扩展 287
10.1 TypeDescriptor 287
10.1.1 构造函数 288
10.1.2 getTypeDescriptor 304
10.1.3 getProperty 308
10.1.4 getAttribute 310
10.1.5 setProperty 311
10.1.6 invokeMethod 315
10.1.7 getPropertyType 316
10.2 使用ASP.NETAJAX类型描述能力 317
10.2.1 StringBuilder 318
10.2.2 CustomTable 321
10.3 动态注入元数据信息 329
10.3.1 addProperty 329
10.3.2 addMethod 330
10.3.3 addEvent 331
10.3.4 addAttribute 332
10.4 ICustomTypeDescriptor 332
10.5 小结 334
第11章 数据类 335
11.1 IData 335
11.2 DataColumn 336
11.3 DataRow 339
11.3.1 构造函数 339
11.3.2 descriptor 340
11.3.3 ICustomTypeDescriptor 341
11.3.4 Owner 345
11.3.5 INotifyPropertyChange 346
11.4 DataTable 347
11.4.1 构造函数 347
11.4.2 IData 349
11.4.3 Descriptor 356
11.4.4 INotifyPropertyChange 357
11.4.5 InotifyCollectionChanged 359
11.4.6 createRow 362
11.4.7 getChanges 363
11.4.8 getColumn 364
11.4.9 raiseRowChanged 365
11.4.10 parseFromJson 365
11.5 使用DataColumn、DataRow和DataTable 367
11.6 小结 376
第12章 客户-服务器通信 377
12.1 WebRequest 377
12.1.1 构造函数 377
12.1.2 目标URL 378
12.1.3 HTTP动作 378
12.1.4 请求体 378
12.1.5 超时 379
12.1.6 Web请求执行器 379
12.1.7 请求头 380
12.1.8 completed事件 380
12.1.9 调用一个Web请求 381
12.2 WebRequestExecutor 382
12.2.1 构造函数 382
12.2.2 WebRequest 382
12.2.3 get_started 383
12.2.4 get_responseAvailable 383
12.2.5 get_timedOut 383
12.2.6 get_aborted 384
12.2.7 get_responseData 384
12.2.8 get_statusCode 384
12.2.9 get_statusText 384
12.2.10 get_xml 384
12.2.11 get_object 385
12.2.12 executeRequest 385
12.2.13 abort 385
12.2.14 getResponseHeader 385
12.2.15 getAllResponseHeaders 386
12.3 WebRequestManager 386
12.3.1 构造函数 386
12.3.2 默认超时 387
12.3.3 默认执行器类型 387
12.3.4 事件 387
12.3.5 执行一个Web请求 389
12.3.6 NetworkRequestEventArgs 390
12.4 XMLHttpRequest 391
12.5 XMLDOM 391
12.6 XMLHttpExecutor 392
12.6.1 构造函数 392
12.6.2 get_timedOut 395
12.6.3 get_started 395
12.6.4 get_responseAvailable 395
12.6.5 get_aborted 396
12.6.6 执行请求 396
12.6.7 getResponseHeader 398
12.6.8 getAllResponseHeaders 399
12.6.9 get_responseData 399
12.6.10 get_statusCode 400
12.6.11 get_statusText 400
12.6.12 get_xml 400
12.6.13 abort 401
12.7 使用WebRequest、WebRequestManager和XMLHttpExecutor 40212.8 小结 422
第13章 通过SOAP消息使用Web服务 423
13.1 构建Web服务 423
13.2 WSDL文档 424
13.2.1 参数的名称、类型和顺序 426
13.2.2 返回值的类型和顺序 426
13.2.3 方法描述 427
13.2.4 描述访问方法的通信协议 427
13.2.5 指定访问方法的站点 428
13.2.6 指定方法类 429
13.3 SOAP消息 429
13.4 小结 441
第14章 通过JSON消息使用Web服务 442
14.1 WebServiceProxy 442
14.1.1 Timeout 442
14.1.2 默认成功回调函数 442
14.1.3 默认失败回调函数 443
14.1.4 路径 443
14.1.5 调用一个Web方法 443
14.2 使用WebServiceProxy 454
14.3 WebServiceError 457
14.4 使用WebServiceError 460
14.5 调用页面方法 464
14.6 调用自定义方法 466
14.7 底层机制 472
14.7.1 ScriptHandlerFactory 472
14.7.2 RestHandlerFactory 476
14.7.3 RestHandler 478
14.7.4 HandlerWrapper 483
14.7.5 页面方法揭秘 484
14.7.6 Web服务桥揭秘 489
14.7.7 使用这些复制品 492
14.8 小结 494
第15章 代理类 495
15.1 什么是代理? 495
15.2 代理类 497
15.2.1 和Web服务相关的代理类 497
15.2.2 和页面方法相关的代理类 502
15.2.3 和自定义类相关的代理类 504
15.3 自动代理类生成 504
15.3.1 声明式方法 505
15.3.2 命令式方法 513
15.3.3 父/子页面 516
15.4 底层机制 518
15.4.1 ScriptManager 518
15.4.2 ServiceReference 522
15.4.3 ClientProxyGenerator 524
15.4.4 RestClientProxyHandler 540
15.5 使用这些复制品 541
15.6 小结 548
第16章 行为 549
16.1 什么是行为? 549
16.2 Behavior类 550
16.2.1 Properties 556
16.2.2 实例方法 559
16.2.3 静态方法 561
16.3 ClickBehavior 562
16.3.1 descriptor 563
16.3.2 click事件 563
16.3.3 initialize 564
16.3.4 使用ClickBehavior 564
16.4 ASP.NETAJAX控件工具箱 566
16.4.1 BehaviorBase 566
16.4.2 TextBoxWatermarkBehavior 571
16.5 小结 588
第17章 服务器端script控件和extender控件 589
17.1 为什么需要服务器端script和extender控件 589
17.2 服务器extender控件 590
17.2.1 IExtenderControl 591
17.2.2 ExtenderControl 591
17.3 服务器script控件 594
17.3.1 IScriptControl 594
17.3.2 ScriptControl 595
17.4 ScriptDescriptor 597
17.4.1 ScriptComponentDescriptor 598
17.4.2 ScriptControlDescriptor 609
17.4.3 ScriptBehaviorDescriptor 610
17.5 ScriptReference 611
17.6 ScriptReferenceCollection 612
17.7 ScriptManager 613
17.7.1 Scripts 618
17.7.2 LoadScriptsBeforeUI 618
17.7.3 ScriptControls 618
17.7.4 RegisterScriptControl 618
17.7.5 ExtenderControls 618
17.7.6 RegisterExtenderControl 619
17.7.7 GetCurrent 619
17.7.8 OnInit 619
17.7.9 Page_PreRenderComplete 619
17.7.10 CollectScripts 620
17.7.11 AddScriptReferencesFor-ScriptControls 621
17.7.12 针对extender控件的RegisterScriptDescriptors 622
17.8 ResolveScriptReference事件 623
17.9 将所有综合在一起 625
17.10 开发一个自定义的服务器端extender控件 626
17.10.1 WatermarkText 630
17.10.2 WatermarkCssClass 630
17.10.3 ClientState 631
17.10.4 ClientStateFieldID 631
17.10.5 CreateClientStateField 631
17.10.6 BehaviorID 631
17.10.7 GetScriptReferences 631
17.10.8 GetScriptDescriptors 631
17.10.9 OnInit 633
17.10.10 Page_PreLoad 633
17.10.11 OnLoad 634
17.10.12 OnPreRender 635
17.10.13 Render 636
17.10.14 使用服务器端extender控件 637
17.11 开发一个script控件 638
17.11.1 PreRender 641
17.11.2 Render 642
17.11.3 使用服务器端script控件 642
17.12 服务器端script控件与服务器端extender控件 643
17.13 小结 643
第18章 Web服务桥和转换器 644
18.1 AmazonWeb服务 644
18.2 开发支持Web服务桥的服务器端script控件 650
18.2.1 AspNetAjaxAmazonSearch 651
18.2.2 AmazonSearchScriptControl 658
18.2.3 HtmlGenerator 665
18.2.4 HtmlGeneratorScriptControl 669
18.2.5 使用这些组件 676
18.3 转换器 678
18.4 使用转换器 687
18.4.1 XmlBridgeTransformer 687
18.4.2 XsltBridgeTransformer 707
18.5 小结 714
第19章 UpdatePanel和ScriptManager 715
19.1 让异步的局部页面更新成为可能 715
19.2 条件更新 717
19.2.1 子元素作为触发器 719
19.2.2 一个UpdatePanel包含在另一个UpdatePanel内 720
19.2.3 使用触发器 729
19.2.4 命令式更新 731
19.3 开发支持局部更新的自定义组合服务器控件 733
19.3.1 BaseMasterDetailControl 734
19.3.2 BaseMasterDetailControl2 753
19.4 小结 756
第20章 在用户控件和自定义控件中使用UpdatePanel 757
20.1 MasterDetailControl 757
20.1.1 CreateBaseDataBoundControl-Master 759
20.1.2 RegisterMasterEventHandlers 759
20.1.3 属性 761
20.2 在Web页面中使用MasterDetailControl 761
20.3 MasterDetailControl2 765
20.3.1 CreateBaseDataBoundControl-Master 767
20.3.2 RegisterMasterEventHandlers 767
20.3.3 Master_SelectedIndexChanged 767
20.3.4 Master_DataBound 767
20.3.5 属性 768
20.4 使用MasterDetailControl2 768
20.5 MasterDetailControl3 770
20.6 使用MasterDetailControl3 771
20.7 MasterDetailControl4 773
20.8 开发支持局部页面更新的数据控件域 773
20.8.1 扩展BoundField 774
20.8.2 覆盖InitializeDataCell 778
20.8.3 处理DataBound事件 779
20.8.4 从单元格中抽取值 780
20.8.5 外观属性 780
20.8.6 使用MasterDetailField 780
20.9 开发支持局部呈现的用户控件 784
20.9.1 显示所有消息 794
20.9.2 显示某消息的细节 795
20.9.3 删除一条消息 796
20.9.4 更新一条消息 797
20.9.5 回复一个消息 797
20.9.6 开始一个新线索 798
20.10 小结 800
第21章页面生命周期和异步的局部页面呈现 801
21.1 处理一个请求 801
21.2 Page生命周期 804
21.3 第一次访问支持局部页面呈现的Web页面 806
21.4 InitRecursive 806
21.4.1 ScriptManager的OnInit方法 807
21.4.2 UpdatePanel的OnInit方法 814
21.4.3 模板化控件 819
21.5 LoadRecursive 826
21.6 Rendering 847
21.6.1 ScriptManager的Render方法 848
21.6.2 UpdatePanel的Render方法 853
21.7 小结 855
第22章 ASP.NETAJAX客户端PageRequest Manager 857
22.1 实例化和初始化客户端PageRequest Manager 858
22.1.1 客户端PageRequest Manager的getInstance方法 859
22.1.2 客户端PageRequest Manager类的构造函数 860
22.1.3 客户端PageRequestManager的_initializeInternal方法 862
22.1.4 _updateControls 867
22.1.5 客户端PageRequest Manager的_pageLoadedInitialLoad方法 871
22.1.6 客户端PageRequestManager的_pageLoaded方法 871
22.2 pageLoaded事件 873
22.3 生成一个异步页面回传 889
22.3.1 辅助方法 889
22.3.2 _doPostBack 894
22.3.3 _onFormSubmit 898
22.4 initializeRequest事件 906
22.5 beginRequest事件 913
22.6 小结 918
第23章 异步局部页面呈现:服务器端处理 919
23.1 RetrievePostData 919
23.2 LoadScrollPosition 922
23.3 InitRecursive 924
23.3.1 PageRequestManager的IsAsync Post Back Request方法 924
23.3.2 PageRequestManager的OnInit方法 925
23.4 LoadPostData生命周期阶段 925
23.4.1 UpdatePanel 929
23.4.2 ScriptManager 929
23.4.3 PageRequestManager的LoadPostData方法 930
23.5 RaisePostDataChangedEvent生命周期阶段 932
23.6 PreRender生命周期阶段 933
23.7 Rendering生命周期阶段 934
23.7.1 PageRequestManager的编码方法 935
23.7.2 PageRequestManager的RenderPageCallback方法 936
23.8 服务器响应 969
23.9 小结 981
第24章 异步局部页面呈现:客户端处理 982
24.1 服务器响应文本的到达 982
24.2 PageRequestManager的_updatePanel方法 1005
24.3 PageRequestManager的registerDisposeScript方法 1006
24.4 _destroyTree方法 1007
24.5 _ScriptLoader类 1008
24.5.1 readLoadedScripts 1008
24.5.2 getInstance方法 1009
24.5.3 queueScriptBlock方法 1009
24.5.4 queueCustomScriptTag方法 1009
24.5.5 isScriptLoaded方法 1010
24.5.6 _getLoadedScript方法 1010
24.5.7 queueScriptReference方法 1010
24.5.8 loadScripts方法 1011
24.5.9 _loadScriptsInternal方法 1012
24.5.10 _createScriptElement方法 1014
24.5.11 _ScriptLoader类的构造函数 1014
24.5.12 _scriptLoaderHandler方法 1014
24.6 _ScriptLoaderTask类 1015
24.6.1 _ScriptLoaderTask类的构造函数 1015
24.6.2 execute方法 1016
24.6.3 _scriptLoadHandler方法 1017
24.7 _scriptsLoadComplete方法 1017
24.8 _endPostBack方法 1020
24.9 pageLoading事件 1025
24.10 pageLoaded事件 1043
24.11 endRequest事件 1045
24.12 小结 1061
附录A XML脚本 1062
附录B 绑定 1104
附录C 动作 1116
附录D 数据控件 1129
附录E 模板化控件 1150
附录F ListView 1173
猜您喜欢