Chapter 01 酷炫效果营造者,探讨AJAX Control Toolkit(上) 1
1-1如何将AJAX ControlToolkit控件添加到Visual Studio 2008的工具箱 2
1-2如何添加AJAX ControlToolkit控件与扩展器的命名空间(Namespace) 6
1-3探讨控件与扩展器 8
1-4既生瑜何生亮——为什么需改用ToolkitScriptManager 9
1-5探讨可折叠面板(AccordionPane )与可折叠控件(Accordion) 13
页面范例1如何使用“可折叠(Accordion )控件”展开或收缩内容 17
页面范例2在问卷中,使用可折叠控件以避免版面过长 21
页面范例3示范使用可折叠的数据绑定功能,动态绘制柱形图 22
页面范例4将可折叠控件绑定到ObjectDataSource,通过Web服务访问XML格式的留言数据文件 23
页面范例5使用LingDataSource作为可折叠的数据源,并搭配多种Control Toolkit 24
页面范例6使用JavaScript为“可折叠(Accordion )控件”加上新属性,使其看起来如同“可收缩面板(CollapsiblePanel)” 26
1-6形影不离(AlwaysVisibIeControl ) 28
页面范例1如何使用“形影不离”(AlwaysVisibIeControl)扩展器显示服务器状态 30
页面范例2使用“形影不离”(AlwaysVisibIeControl )扩展器显示标题 33
1-7动画集锦(AnimationExtender) 34
1-7-1使用XML声明语法设置动画集锦 34
页面范例 如何使用“动画集锦” (AnimationExtender)扩展器制作“淡出”(FaceOut)效果 39
1-7-2同时或顺序播放动画 40
页面范例1如何使用<Parallel>与<Sequence>标签组合出不同的动画效果 41
页面范例2先使用<Sequence>标签,然后再使用<Parallel>标签来产生复合式的“爆炸”动画效果 42
1-7-3结合“动作”的动画 45
页面范例1结合“动作”的动画 46
页面范例2实现“自动输入完成”来查询书籍资料,并播放“动画”以显示相关信息 49
1-8自动输入完成(AutoCompleteExtender) 55
页面范例1实现姓名与地址数据的自动输入完成 60
页面范例2自动输入完成调用Page Method,可输入多个词,并已加入动画与额外的效果 65
页面范例3使用JavaScript为自动输入完成添加相关事件处理程序 68
1-9日历扩展器(CalendarExtender) 72
页面范例1探讨“日历”扩展器的使用模式 75
页面范例2示范“日历”扩展器来编辑日期类型字段 77
页面范例3通过JavaScript来指定日历扩展器的默认日期并改变默认显示模式为年份 78
页面范例4仅用一个日历扩展器在多个日期字段中 80
1-10级联下拉菜单(CascadingDropDown ) 81
页面范例1使用“级联下拉菜单”(CascadingDropDown )查询订单内容 84
页面范例2邮政编码选择界面...完全真实数据!!! 89
页面范例3整合使用Silverlight与“级联下拉菜单” 92
1-11可收缩面板(CollapsiblePanel) 93
页面范例1示范使用“可收缩面板”来收缩或展开详细内容 96
页面范例2示范使用“可收缩面板”制作书籍目录 96
页面范例3示范使用“可收缩面板”展开与收缩统计图 98
页面范例4示范如何使用水平式可收缩面板 98
页面范例5在可折叠控件内使用水平式可收缩面板 100
页面范例6在ListView控件中,使用GridView控件搭配可收缩面板来显示分组后的详细结果 100
1-12确认按钮(ConfirmButton) 102
页面范例1示范使用“确认按钮”(ConfirmButton)再次确认是否执行特定功能 103
页面范例2在确认按钮中,使用强制弹出框代替确认对话框 105
1-13拖曳面板(DragPanel) 106
页面范例1示范使用“拖曳面板”(DragPanel) 107
页面范例2在拖曳面板中,新建或修改数据 108
1-14下拉菜单(DropDown) 1
页面范例 创建具备Windows?SharePoint?Server风格的动态下拉菜单 113
1-15阴影面板(DropShadow) 115
页面范例 使用“阴影面板”(DropShadow)让页面画面更专业 116
1-16动态填充(DynamicPopulate Extender) 117
页面范例1使用“动态填充”(DynamicPopulate)由Web服务获取并显示实时天气现况 119
页面范例2使用页面方法(Page Method)搭配“动态填充”扩展器读取RSS文章 122
页面范例3在动态填充扩展器中,使用页面方法随机显示影片内容 125
1-17文本框过滤器(FilteredText Box) 128
页面范例1使用文本框过滤器(FilteredTextBox)——简易计算器 129
页面范例2如何使用文本框过滤器(FilteredTextBox)检查所输入的个人资料是否合法 132
1-18停靠菜单(HoverMenu) 134
页面范例1使用停靠菜单(HoverMenu)来编辑与删除员工数据 136
页面范例2使用停靠菜单(HoverMenu)显示存储于数据库的产品照片 141
页面范例3示范在文本框中,使用停靠菜单显示选项按钮列表 143
页面范例4使用停靠菜单动态调用Web服务来显示某支股票图线 144
1-19列表搜索(ListSearch) 146
页面范例1使用ListSearchExtender查询邮政编码所在的县市 148
页面范例2使用“列表搜索(ListSearch)”快速找到特定的选项 148
页面范例3如何在列表项目中使用ListSearch搜索中文字 150
Chapter 02 酷炫效果营造者,探讨AJAX Control Toolkit(下) 153
2-1探讨输入掩码(MaskedEdit)与输入掩码验证器(Masked EditValidator) 154
页面范例 示范如何在DetailsView中,使用“输入掩码”与“输入掩码验证器” 162
2-2强制弹出(ModalPopup) 164
页面范例1使用“强制弹出(ModalPopup)”控件提供更改样式的弹出菜单 167
页面范例2使用强制弹出显示相片信息 169
页面范例3如何处理持有多个“取消”按钮的强制弹出 170
页面范例4使用ModalPopup代替JavaScript的Confirm函数以便单击“确认”按钮更新数据 171
页面范例5强制弹出调用页面方法显示股票交易价格 174
页面范例6使用强制弹出显示与编辑主从式数据 177
页面范例7让强制弹出具备按下Esc键关闭对话框的功能 180
页面范例8以动画方式显示强制弹出的内容 184
2-3互斥选取框(MutuaIlyExclcusiveCheckBox) 187
页面范例 使用“互斥选取框(MutuaIlyExclcusiveCheckBox)”进行问卷调查 187
2-4拒绝机器人行为(NoBot) 190
页面范例1如何使用基本的拒绝机器人行为 193
页面范例2在“拒绝机器人行为”控件中,利用JavaScript进行检测 194
页面范例3在留言板中,为拒绝机器人行为添加DOM来避免刷屏 197
2-5数值调整器(NumericUpDown) 201
页面范例1示范在GridView中使用“数值调整器”来编辑字段值 203
页面范例2示范如何为“数值调整器”动态添加枚举值 205
页面范例3调用Web服务来取得递增与递减值 206
2-6分页项目符号列表(PagingBulletedList) 207
页面范例1示范如何使用分页项目符号列表 209
页面范例2使用JavaScript控制分页项目符号列表 209
2-7密码强度(PasswordStrength) 212
页面范例 示范如何使用“密码强度”扩展器 216
2-8弹出控件(PopupControl) 217
页面范例1示范在GridView控件使用“弹出式控件” 220
页面范例2示范在GridView控件使用“弹出控件” 223
页面范例3使用弹出式控件调用页面方法模拟停靠菜单的效果 226
2-9评级(Rating) 230
页面范例1示范如何使用“评级”控件 231
页面范例2善用评级控件的客户端回调事件 233
页面范例3如何避免按下评级控件页面自动往上滚动 237
2-10顺序重排列表(ReorderList) 240
页面范例 待办事项,可自行拖曳事项决定优先次序 243
2-11可调整大小扩展器(ResizableControl) 246
页面范例1示范如何使用“可调整大小控件” 248
页面范例2示范如何使用“可调整大小控件”来随意调整GridView控件中的柱形图 249
2-12圆角(RoundedCorners) 251
页面范例1示范在异步相簿中,使用“圆角”扩展器 252
页面范例2示范使用圆角扩展器的客户端属性 252
页面范例3使用滑块扩展器来调整圆角的半径 253
2-13滑块(Slider) 254
页面范例1使用滑块查看字体中的字符 257
页面范例2使用滑块来调整图片的高度与宽度:由服务器端控制 258
页面范例3使用滑块来调整图片的高度与宽度:通过JavaScript 259
2-14相簿播放(SIideShow) 260
页面范例1相簿播放器使用示范(逐一指定相片来源) 263
页面范例2“相簿播放”扩展器使用示范(由文件夹取得相片来源) 264
页面范例3自选播放的相簿(可设置循环播放与播放速度) 266
页面范例4为相簿加上动画效果 271
2-15索引标签(Tabs) 275
页面范例1示范如何使用索引标签(Tab) 279
页面范例2在索引标签中,使用主从式(Master/Detail)编辑模式 282
页面范例3在第一次选择特定“索引标签”时,才动态加载“索引标签”的内容 285
页面范例4动态创建索引标签(内容由Web服务返回) 290
2-16水印文本框(TextBoxWatermark) 292
页面范例1使用JavaScript检查水印文本框的输入内容 293
页面范例2“水印文本框”扩展器使用示范 295
2-17双态按钮(ToggleButton) 296
页面范例 双态按钮(ToggleButton)使用示范 297
2-18更新面板的动画效果(UpdatePanelAnimation) 298
页面范例1示范如何使用“更新面板动画效果”扩展器赋予UpdatePanel动画效果 299
页面范例2示范如何使用“更新面板动画效果”扩展器赋予相簿淡入效果 299
页面范例3为GridView控件注入更新面板动画效果 301
页面范例4制作类似Gmail载入中的动画效果 304
2-19外显型对话框验证器(ValidatorCallout) 307
页面范例 示范如何使用“外显型对话框验证器” 309
Chapter 03 如何在ASP.NET页面中使用JavaScript 313
3-1 ASP.NET 3.5的JavaScript功能综述 314
3-2如何将JavaScript包含在页面中 315
3-3以脚本块的形式来包含JavaScript 315
页面范例1 JavaScript数字时钟 315
页面范例2在浏览器的状态栏中显示JavaScript数字时钟 317
页面范例3示范使用JavaScript重定向网页 318
3-4引用存储在.js文件中的JavaScript 319
页面范例 使用JavaScript制作跑马灯 320
3-5使用ClientScriptManager类动态创建JavaScript 321
页面范例 示范使用ClientScriptManager对象动态加入JavaScript 323
3-6如何使用ScriptManager对象来引用JavaScript一非常重要 326
3-6-1以声明方式引用独立存在的.js文件 326
页面范例 示范引用独立存在的Animation.js与Timer.js来播放动画 326
3-6-2以声明方式引用嵌入组件中的js文件 329
页面范例 示范引用AjaxControlToolkit.dll组件中的Animation.js与Timer.js来播放动画 330
3-6-3以程控方式动态引用JavaScript 330
页面范例1示范使用ScriptManager件动态引用独立存在的JavaScript文件 331
页面范例2示范使用Script Manager.RegisterClientScriptInclude方法动态引用独立存在的JavaScript文件 334
页面范例3示范使用ScriptManager控件动态引用独立存在的JavaScript文件 335
页面范例4示范使用ScriptManager件动态引用嵌入组件中的JavaScript文件 336
3-7如何使用服务器控件的客户端事件 337
3-7-1以声明方式指定客户端事件处理程序 337
页面范例1示范如何指定鼠标移入、鼠标移出与单击的客户端事件处理程序 338
页面范例2示范使用客户端事件onmouseover制作一个简易相簿 341
3-7-2以编程方式指定客户端事件处理程序 343
页面范例1示范以编程方式为Text Box服务器控件指定客户端事件处理程序 343
页面范例2示范以编程方式为Image服务器控件指定客户端事件处理程序 344
页面范例3制作鼠标指针移到ListView控件的数据行上方时的醒目提示效果-重要!! 350
页面范例4示范让ListView控件的数据行同时具备醒目提示效果与图片变换效果-重要!! 353
3-8如何在JavaScript中访问ASP.NET服务器控件 355
页面范例1结合JavaScript与ListBox服务器控件的客户端挑选界面 356
页面范例2异步的可收缩数据分组界面(JavaScript+嵌套ListView) 359
3-9探讨客户端JavaScript与服务器端程序代码的沟通方式一非常重要 363
3-9-1直接从客户端JavaScript调用服务器端程序代码 363
3-9-2如何实现一个客户端回调 364
页面范例 如何实现客户端回调来让页面不需要整个回发 365
3-9-3使用一个HiddenField控件来共享数据 368
页面范例 示范使用RegisterHiddenField方法与RegisterArrayDeclaration方法 369
3-9-4使用Cookie来共享数据 370
页面范例 客户端JavaScript与服务器端程序代码如何共享Cookie(已解决中文乱码问题) 370
3-9-5使用异步回发共享数据 374
页面范例1示范使用ScriptManager控件的RegisterDataltem方法将自定义数据从服务器传送到客户端 375
页面范例2如何将GridView中已被更新的数据行顺序编号传送到客户端以便制作动态醒目提示效果 377
3-10题外话-可以动态创建ScriptManager控件吗 380
页面范例 示范动态添加ScriptManager控件 380
小结 382
Chapter 04 探讨JavaScript的OOP扩展功能 383
4-1面向对象功能综述 384
4-2使用命名空间与类 386
实现演练 390
页面范例 示范如何使用JavaScript命名空间与类 394
4-3如何使用继承 400
页面范例1示范如何继承JavaScript类 400
页面范例2示范如何继承JavaScript类 402
页面范例3示范如何操作Javascript父类及派生子类 408
页面范例4示范如何继承AJAX ControlToolkit的动画类 413
页面范例5示范通过继承AJAX ControlToolkit的动画类为异步滚动缩图相簿添加动态说明效果 416
4-4如何使用接口 421
页面范例1示范如何定义与使用JavaScript接口 422
页面范例2示范如何使用JavaScript类继承与接口 426
页面范例3示范如何使用JavaScript接口变化类的功能 432
4-5如何使用枚举 438
页面范例1示范如何使用JavaScript枚举 440
页面范例2示范如何使用JavaScript类与枚举 442
4-6如何使用反射 443
页面范例 示范如何使用JavaScript类与反射 444
4-7探讨客户端页面生命周期事件 448
4-7-1探讨重要的客户端类 448
4-7-2为客户端事件编写事件处理程序 449
4-7-3如何使用页面的load与unload事件 449
4-7-4如何使用其他客户端类的事件 449
4-7-5客户端事件表列 449
4-7-6客户端事件执行顺序 451
页面范例 具体查看客户端页面生命周期事件引发顺序 453
4-8探讨Array类型扩展 457
4-9探讨Boolean类型扩展 458
4-10探讨Date类型扩展 458
4-11探讨Error类型扩展 459
4-12探讨Number类型扩展 459
4-13 探讨Object类型扩展 460
4-14探讨String类型扩展 460
小结 460
Chapter 05 探讨JavaScript的日期全球化功能 461
5-1关于区域特征值 462
5-2使用浏览器语言设置来全球化JavaScript的日期 462
页面范例 使用浏览器语言设置来全球化JavaScript的日期 463
5-3使用Web.config设置来全球化JavaScript的日期 465
5-4使用页面设置来全球化JavaScript的日期 466
页面范例 示范使用@Page指示词来设置页面的区域特征值 466
5-5使用服务器端程序代码来全球化JavaScript的日期 467
页面范例 示范重写网页的InitializeCulture方法来设置页面的区域特征值 467
5-6 JavaScript日期全球化的优先级 468
Chapter 06 探讨如何在客户端用JavaScript异步调用Web服务(.asmx与.svc) 469
6-1 Web服务通信层功能综述 470
6-1-1关于AJAX 471
6-1-2善用JSON 471
页面范例1客户端序列化与服务器端反序列化 472
页面范例2服务器端序列化与客户端反序列化 479
6-1-3发出HTTP请求 484
页面范例 使用WebRequest对象来实现GET与POSTWeb请求 484
6-2客户端与服务器间的通信 488
6-2-1客户端架构 489
6-2-2服务器架构 490
6-3客户端类型简介 491
6-4服务器类型简介 492
6-5如何将ASP.NETWeb服务(.asmx )公开给JavaScript 492
6-5-1公开给JavaScript调用的ASP.NET Web服务需要满足的条件 493
6-5-2如何在页面中注册JavaScript调用的Web服务 494
页面范例1使用JavaScript调用ASP.NETWeb服务来执行异步数据库查询 497
页面范例2使用JavaScript调用ASP.NETWeb服务时的错误处理 501
页面范例3如何使用HTTPGETverb来调用一个ASP.NETWeb服务方法 504
页面范例4使用JavaScript调用返回XmIDocument对象的ASP.NETWeb服务方法 506
页面范例5调用Web服务方法与ASP.NET AJAX ControlToolkit的收缩式异步查询界面 509
页面范例6示范动态引用ASP.NETWeb服务 518
6-6如何将WCF服务(Svc)公开给JavaScript 518
6-6-1公开给JavaScript调用的WCF服务需要满足的条件 518
6-6-2如何在页面中注册JavaScript调用的WCF服务 520
页面范例1示范使用JavaScript异步调用WCF服务的方法来取得服务器时间 521
页面范例2示范使用JavaScript异步调用WCF服务的方法 523
页面范例3示范使用JavaScript异步调用WCF服务的方法来转换华氏与摄氏温度 527
6-7如何让多个Web服务方法共享同一个成功回调函数 531
页面范例 示范利用用户内容与方法名称判断调用者 531
6-8如何传递与接收复杂类型 534
页面范例1传递与接收复杂类型的自定义颜色对象 534
页面范例2传递与接收复杂类型的自定义菜单对象 539
6-9 JavaScript与Web服务之间如何传递泛型集合与数组-非常重要 546
页面范例 示范在JavaScript与Web服务之间传递和取得泛型集合与数组 547
6-10如何使用JavaScript调用页面方法(Page Method) 556
页面范例 结合JavaScript与页面方法制作一个自动输入完成文本框 556
Chapter 07 探讨如何在客户端用JavaScript异步调用ASP.NET应用程序服务 573
7-1如何使用JavaScript异步调用验证服务 574
7-1-1探讨login方法 574
7-1-2探讨logout方法 575
7-1-3探讨defauItFailedCaIIback属性 576
7-1-4探讨defaultLoginCompletedCallback属性 577
7-1-5探讨defauItLogoutCompletedCaIIback属性 578
7-1-6探讨isLoggedln属性 579
7-1-7探讨path属性 580
7-1-8探讨timeout属性 580
7-1-9探讨验证服务的必要设置 581
页面范例 示范使用JavaScript异步调用验证服务 583
7-2如何使用JavaScript异步调用角色服务 590
页面范例 示范使用JavaScript异步调用角色服务 593
7-3如何使用JavaScript异步调用个性化配置文件服务 594
7-3-1探讨ProfileService类的属性字段 595
7-3-2探讨ProfileService类的load方法 595
7-3-3探讨ProfileService类的save方法 596
7-3-4探讨ProfileService类的defaultFailedCaIIback属性 596
7-3-5探讨ProfileService类的defaultLoadCompletedCallback属性 597
7-3-6探讨ProfileService类的defauItSaveCompletedCallback属性 598
7-3-7探讨ProfileService类的path属性 599
7-3-8探讨ProfileService类的timeout属性 600
7-3-9探讨ProfileGroup类 600
7-3-10探讨个性化配置文件服务的必要设置 601
页面范例 调用个性化配置文件服务来取得与设置页面前景颜色和背景颜色 602
小结 612
Chapter 08 如何生成具备客户端功能的组件 614
8-1如何创建自定义客户端DOM事件 614
8-1-1如何将事件处理程序绑定到DOM元素事件 614
页面范例 示范如何将事件处理程序绑定到DOM元素事件 615
8-1-2如何创建与删除自定义的事件处理程序 616
8-1-3如何引发自定义事件 617
8-2如何创建非可视客户端组件 618
页面范例 示范如何创建和使用非可视客户端组件 618
8-3如何创建客户端行为 625
8-4如何创建客户端控件 626
页面范例1查看客户端控件的执行效果 628
页面范例2实现具备鼠标移入、移出与单击功能的客户端控件 632
8-5如何创建扩展器 638
页面范例1示范如何创建和使用扩展器 641
页面范例2验证身份证号码的扩展器 645
8-6如何将扩展器编译成组件 649
8-7如何创建具备客户端功能的Web服务器控件 654
页面范例1示范如何创建与使用具备客户端功能的Web服务器控件 655
页面范例2示范如何创建与使用具备验证身份证号码客户端功能的Web服务器控件 659
页面范例3示范如何创建和使用显示多个城市日期时间的客户端Web服务器控件 660
小结 669