《ASP.NET AJAX编程参考手册 涵盖ASP.NET 3.5及2.0》PDF下载

  • 购买积分:30 如何计算积分?
  • 作  者:(美)ShahramKhosravi编;刘志忠译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302194828
  • 页数:1229 页
图书介绍:AJAX是多项已有技术的一个组合,包括JavaScript、XML、DOM和HTML等。本书详细介绍了这项技术,使得读者可以在.NET 2.0或.NET 3.5环境下开发出拥有强大交互功能以及更好的便捷性的客户端服务。

第1章 AJAX相关技术 1

1.1 Google Suggest 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.NET AJAX 21

1.6 安装ASP.NET AJAX Extensions和ASP.NET Futures 22

1.7 小结 22

第2章 JavaScript基本类型扩展 23

2.1 ASP.NET AJAX Array类型扩展 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.NET AJAX Boolean类型扩展 32

2.3 ASP.NET AJAX Date类型扩展 32

2.4 ASP.NET AJAX Object类型扩展 33

2.5 ASP.NET AJAX String类型扩展 33

2.5.1 endsWith 33

2.5.2 startsWith 34

2.5.3 trim 34

2.5.4 格式化 35

2.6 ASP.NET AJAX Error类型扩展 35

2.6.1 create 36

2.6.2 popStackFrame 38

2.6.3 popStaekFrame的内部机理 41

2.7 小结 44

第3章 内置的和自定义异常类型 45

3.1 ASP.NET AJAX内置异常类型 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.NET AJAX类型描述能力 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 402

12.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.NET AJAX控件工具箱 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 CreateCliientStateField 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.NET AJAX客户端PageRequestManager 857

22.1 实例化和初始化客户端PageRequestManager 858

22.1.1 客户端PageRequestManager的getInstance方法 859

22.1.2 客户端PageRequestManager类的构造函数 860

22.1.3 客户端PageRequestManager的initializeInternal方法 862

22.1.4 _updateControls 867

22.1.5 客户端PageRequestManager的_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的IsAsyncPostBackRequest方法 924

23.3.2 PageRequestManager的OnInit方法 925

23.4 Load Post Data生命周期阶段 925

23.4.1 UpdatePanel 929

23.4.2 ScriptManager 929

23.4.3 PageRequestManager的LoadPostData方法 930

23.5 Raise Post Data Changed Event生命周期阶段 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