目录
前 言
致 谢
第一部分 ASP.NET开发基础
第0章 预备课:学习从这里开始 2
0.1 认识Microsoft.NET 2
0.2 ASP.NET的特点 3
0.3 ASP.NET的版本变迁 4
0.3.1 ASP.NET 1.0与ASP.NET1.1 4
0.3.2 ASP.NET 2.0 5
0.3.3 ASP.NET 3.5 6
0.4 ASP.NET 4为我们带来了什么 7
0.4.1 Microsoft Visual Studio 2010
集成开发环境 7
0.4.2 ASP.NET核心服务 9
0.4.3 ASP.NET Web窗体 12
0.4.4 动态数据 17
0.4.5 ASP.NET Chart控件 18
0.4.6 Microsoft AJAX的功能 18
0.4.7 ASP.NET MVC 19
0.5 Microsoft Visual Studio 2010
集成开发环境 19
0.5.1 解决方案资源管理器 19
0.5.2 控件工具箱 19
0.5.3 服务器资源管理器 20
0.5.4 错误列表与任务列表 20
0.5.5 页面设计窗口与代码编辑窗口 21
0.6 本章小结 22
第1章 开发你的第一个ASP.NET
应用—“Hello,World” 23
1.1 创建“Hello,World”Web应用程序 23
1.1.1 创建解决方案和ASP.NET
Web应用程序 23
1.1.2 创建“Hello,World”
Web页面 28
1.1.3 编译运行程序 33
1.1.4 调试运行程序 34
1.2 ASP.NET网页代码模型 36
1.2.1 单文件页模型 36
1.2.2 代码隐藏页模型 38
1.2.3 选择属于自己的页模型 39
1.3 ASP.NET生命周期 39
1.3.1 IIS 6.0 的ASP.NET应用程序
生命周期 39
1.3.2 IIS 7.0 的ASP.NET应用程序
生命周期 42
1.3.3 ASP.NET页面生命周期 43
1.3.4 用程序来演示ASP.NET
页面生命周期 44
1.4 ASP.NET配置 46
1.4.1 machine.config文件 46
1.4.2 Web.config文件 47
1.4.3 Web.config转换文件 47
1.4.4 Locator特性语法 50
1.4.5 Transform特性语法 52
1.4.6 Web.config文件的配置继承 54
1.4.7 在实际开发中常用的
Web.config配置节设置 54
1.4.8 通过编程读写Web.config
配置节 56
1.5 全局应用程序类Global.asax 58
1.5.1 Global.asax的事件 58
1.5.2 在Global.asax文件里实现
通用防SQL注入漏洞程序 60
1.6 新建Web网站与新建Web应用
程序的区别 63
1.7 本章小结 64
第2章 HTML服务器控件 65
2.1 ASP.NET服务器控件概述 65
2.1.1 ASP.NET服务器控件的
类型 65
2.1.2 ASP.NET服务器控件的类
层次结构 66
2.2 HTML服务器控件概述 68
2.2.1 HTML标签和HTML服务器
控件之间的区别 68
2.2.2 HTML服务器控件的类
层次结构 68
2.2.3 HTML服务器控件的共有
属性 70
2.3 HTML输入控件 71
2.3.1 HtmlInputButton控件 71
2.3.2 HtmlInputSubmit和
HtmlInputReset控件 73
2.3.3 HtmlInputImage控件 73
2.3.4 HtmlInputRadioButton控件 73
2.3.5 HtmlInputCheckBox控件 74
2.3.6 HtmlInputText和HtmlInput
Password控件 75
2.3.7 HtmlInputFile控件 76
2.3.8 HtmlInputHidden控件 77
2.4 HTML容器控件 78
2.4.1 HtmlTextArea控件 78
2.4.2 HtmlSelect控件 79
2.5 HtmlImage控件 80
2.5.1 HtmlImage控件的使用方法 80
2.5.2 使用数据流的形式输出图片 81
2.6 使用代码处理HTML服务器控件 82
2.6.1 设置Style特性和其他属性 82
2.6.2 Attributes属性使用说明 82
2.6.3 用程序动态创建控件 83
2.7 本章小结 84
第3章 Web标准服务器控件 86
3.1 Web标准服务器控件概述 86
3.1.1 Web标准服务器控件的功能 86
3.1.2 与HTML服务器控件的区别 86
3.1.3 WebControl基类 87
3.1.4 单位 87
3.1.5 枚举 88
3.1.6 颜色 88
3.1.7 字体 89
3.1.8 默认按钮 90
3.2 数据显示控件 90
3.2.1 Label控件 90
3.2.2 Literal控件 91
3.3 数据输入控件 92
3.3.1 TextBox控件 92
3.3.2 CheckBox控件 93
3.3.3 CheckBoxList控件 93
3.3.4 RadioButton控件 94
3.3.5 RadioButtonList控件 95
3.4 数据提交控件 95
3.4.1 Button控件 96
3.4.2 ImageButton控件 96
3.4.3 LinkButton控件 97
3.5 图像显示控件 97
3.5.1 Image控件 97
3.5.2 ImageMap控件 98
3.6 文件上传控件 100
3.6.1 使用FileUpload控件上传
文件 100
3.6.2 文件的类型上传限制 102
3.6.3 文件的大小上传限制 103
3.7 Calendar控件 104
3.8 HyperLink控件 106
3.9 Panel控件 107
3.10 HiddenField控件 109
3.11 AdRotator控件 111
3.12 本章小结 113
第4章 ASP.NET验证控件 114
4.1 验证控件概述 114
4.1.1 验证控件的类型 114
4.1.2 BaseValidator类 115
4.1.3 验证流程 116
4.2 表单验证控件:RequiredField
Validator 117
4.3 范围验证控件:RangeValidator 119
4.4 比较验证控件:CompareValidator 120
4.5 正则验证控件:Regular
ExpressionValidator 122
4.6 自定义逻辑验证控件:
CustomValidator 123
4.7 验证信息显示:
ValidationSummary 124
4.8 验证控件编程实践 126
4.8.1 以编程方式验证ASP.NET
服务器控件 126
4.8.2 开发自己的文本验证控件 127
4.8.3 引用自定义服务器控件
的方法 130
4.9 验证组 132
4.10 本章小结 134
第5章 ASP.NET用户控件 135
5.1 用户控件详解 135
5.2 @Control指令 136
5.3 创建简单的用户控件 136
5.3.1 创建一个简单的用户控件 137
5.3.2 将页面转换为用户控件 139
5.4 用户控件编程 142
5.4.1 处理用户控件事件 143
5.4.2 给用户控件添加属性 144
5.4.3 使用自定义对象 145
5.4.4 给用户控件添加事件 148
5.4.5 公开内部Web服务器控件 151
5.4.6 以编程的方式动态加载用户
控件 152
5.5 ClientIDMode属性 153
5.6 本章小结 155
第二部分 ASP.NET数据访问
第6章 ASP.NET数据管理 158
6.1 ADO.NET概述 158
6.1.1 ADO.NET数据提供程序 158
6.1.2 ADO.NET数据提供程序的
核心对象 160
6.1.3 ADO.NET基本类库 160
6.2 Connection类 162
6.2.1 连接字符串 162
6.2.2 连接字符串和配置文件 165
6.2.3 打开与关闭连接 165
6.3 连接池 167
6.3.1 什么是连接池 167
6.3.2 连接池如何工作 168
6.3.3 连接池中的连接 171
6.3.4 连接遗漏 172
6.3.5 自定义连接池的实现类 173
6.4 Command类和DataReader类 176
6.4.1 Command类概述 176
6.4.2 创建Command对象 177
6.4.3 DataReader类概述 178
6.4.4 ExecuteReader()方法 179
6.4.5 ExecuteScalar()方法 182
6.4.6 ExecuteNonQuery()方法 182
6.4.7 SQL注入攻击 183
6.4.8 SQL注入攻击的防范 185
6.5 常用的数据库操作 187
6.5.1 使用数据库函数 187
6.5.2 使用触发器 188
6.5.3 使用存储过程 189
6.6 事务 194
6.6.1 事务概述 194
6.6.2 .NET事务的类型划分 195
6.6.3 存储过程事务 195
6.6.4 ADO.NET本地事务 196
6.6.5 隔离级别 198
6.6.6 SQL Server保存点 203
6.6.7 System.Transactions 204
6.6.8 COM+事务 208
6.7 非连接的数据概述 212
6.8 DataTable类 213
6.8.1 DataTable类概述 214
6.8.2 构建和操作DataTable 214
6.8.3 使用DataAdapter填充
DataTable 222
6.8.4 使用DataReader填充
DataTable 224
6.9 DataSet类 224
6.9.1 使用DataAdapter填充
DataSet 224
6.9.2 使用多个表和关系 225
6.10 DataView类 227
6.10.1 排序数据 227
6.10.2 过滤数据 228
6.10.3 计算列 229
6.10.4 将DataSet、DataTable和
DataView转换成XML 230
6.10.5 将XML转换成DataSet、
DataTable 235
6.11 提供程序无关的代码 238
6.12 本章小结 244
第7章 数据控件绑定与操作 245
7.1 List数据控件 245
7.1.1 List数据控件的共有属性
与方法 246
7.1.2 DropDownList控件 247
7.1.3 RadioButtonList与Check
BoxList控件 250
7.1.4 ListBox控件 251
7.1.5 BulletedList控件 252
7.2 DetailsView控件 254
7.2.1 数据绑定 254
7.2.2 定义字段 255
7.2.3 分页 256
7.2.4 添加、修改和删除 257
7.2.5 样式定义 262
7.3 FormView控件 263
7.4 Repeater控件 267
7.5 ListView控件 268
7.5.1 定义模板 268
7.5.2 分页 271
7.5.3 排序 273
7.5.4 编辑数据 274
7.6 DataList控件 277
7.7 Chart控件 280
7.8 本章小结 286
第8章 详解GridView控件 287
8.1 GridView控件基础 287
8.1.1 数据绑定 287
8.1.2 定义列 288
8.2 格式化GridView 290
8.2.1 格式化字段 291
8.2.2 格式化特定值 292
8.3 样式定义 294
8.4 GridView控件的基本操作 297
8.4.1 数据分页 298
8.4.2 数据排序 299
8.4.3 创建空表头 300
8.4.4 编辑数据 303
8.5 选择行 306
8.5.1 RowDataBound事件 306
8.5.2 SelectedIndexChanging与
SelectedIndexChanged事件 308
8.5.3 将数据字段用做选择按钮 308
8.5.4 在GridView中保持行选择 309
8.6 GridView模板 309
8.6.1 定义GridView模板 310
8.6.2 绑定方法 311
8.6.3 处理事件 311
8.6.4 使用模板编辑 312
8.7 GridView的常用编程技巧 315
8.7.1 GridView实现多表头 315
8.7.2 GridView实现数据统计 322
8.7.3 GridView导出数据 323
8.8 本章小结 324
第9章 LINQ查询基础 325
9.1 LINQ查询概述 325
9.1.1 查询数组 326
9.1.2 查询数据库 327
9.1.3 LINQ查询语法概述 329
9.2 LINQ基本子句 329
9.2.1 from查询子句 330
9.2.2 select选择子句 331
9.2.3 where条件子句 332
9.2.4 orderby排序子句 332
9.2.5 group分组子句 333
9.2.6 into联接子句 334
9.2.7 join联接子句 335
9.2.8 let临时表达式子句 337
9.3 LINQ查询操作 338
9.3.1 查询操作概述 338
9.3.2 筛选操作 340
9.3.3 投影操作 340
9.3.4 排序操作 341
9.3.5 聚合操作 342
9.3.6 集合操作 343
9.3.7 元素操作 344
9.3.8 数据类型转换操作 346
9.3.9 生成操作 346
9.3.10 限定符操作 346
9.3.11 连接操作 347
9.3.12 SequenceEqual操作 348
9.3.13 Contact操作 348
9.3.14 Skip与SkipWhile操作 348
9.3.15 Take与TakeWhile操作 349
9.4 本章小结 349
第10章 LINQ to ADO.NET 350
10.1 LINQ to SQL 350
10.1.1 DataContext类 350
10.1.2 延迟执行 361
10.1.3 自动生成数据类 364
10.1.4 处理关系 368
10.1.5 使用存储过程 370
10.1.6 插入、更新与删除操作 371
10.2 LINQ to DataSet 373
10.2.1 LINQ to DataSet概述 373
10.2.2 单表查询 374
10.2.3 交叉表查询 375
10.2.4 用查询创建数据表 377
10.2.5 修改表中字段数据 378
10.3 QueryExtender控件 379
10.3.1 SearchExpession 379
10.3.2 RangeExpression 381
10.3.3 PropertyExpression 382
10.3.4 OrderByExpression 383
10.3.5 CustomExpression 385
10.4 本章小结 386
第11章 XML与LINQ to XML 387
11.1 XML概述 387
11.1.1 XML声明 388
11.1.2 XML元素 388
11.1.3 XML节点 388
11.1.4 XML属性 389
11.2 基于流的XML处理 389
11.2.1 XmlTextWriter 389
11.2.2 XmlTextReader 392
11.3 基于内存中的XML处理 394
11.3.1 XmlDocument 394
11.3.2 用XPath搜索XmlDocument 398
11.3.3 XPathNavigator 399
11.4 验证XML 401
11.4.1 XML架构 402
11.4.2 验证XmlDocument 402
11.5 LINQ to XML 405
11.5.1 LINQ to XML类概述 405
11.5.2 创建XML 406
11.5.3 读取与查询XML 407
11.5.4 添加XML元素、属性
和节点 409
11.5.5 修改XML元素、属性
和节点 409
11.5.6 删除XML元素、属性和
节点 411
11.6 本章小结 411
第12章 ADO.NET实体框架 412
12.1 理解ADO.NET实体框架 412
12.1.1 生成模型和映射 413
12.1.2 将概念模型映射到存储
模型 416
12.1.3 使用实体数据 419
12.1.4 ADO.NET实体框架
的优点 421
12.2 LINQ to Entities 421
12.2.1 简单的对象查询处理 422
12.2.2 排序、分组与聚合数据 423
12.2.3 调用在数据库中定义的
自定义函数 425
12.2.4 调用在数据库中定义的
存储过程 426
12.3 Entity SQL 428
12.4 操作对象 429
12.4.1 创建和添加对象 429
12.4.2 修改对象 430
12.4.3 删除对象 430
12.4.4 保存更改和管理并发 431
12.5 本章小结 432
第三部分 构建ASP.NET站点
第13章 页面样式与布局 434
13.1 在HTML中使用CSS的三种形式 434
13.1.1 内联样式表 435
13.1.2 内部样式表 435
13.1.3 外部样式表 437
13.1.4 各种样式表的优先级 438
13.2 CSS基本语法 439
13.2.1 CSS语法结构 439
13.2.2 背景 443
13.2.3 字体 446
13.2.4 文本 448
13.3 CSS框模型 451
13.3.1 内边距 452
13.3.2 边框 453
13.3.3 外边距 456
13.4 CSS定位 459
13.4.1 绝对定位 460
13.4.2 相对定位 461
13.4.3 固定定位 461
13.5 CSS浮动 461
13.5.1 float属性 462
13.5.2 clear属性 464
13.5.3 用float和clear创建三栏
动态布局 465
13.6 在VS2010中编辑CSS 467
13.6.1 添加内联样式表 467
13.6.2 添加外部样式表 468
13.7 常用页面布局标签 469
13.7.1 表格标签 470
13.7.2 div标签 473
13.8 本章小结 478
第14章 ASP.NET母版页 479
14.1 母版页基础 479
14.1.1 创建简单的母版页 480
14.1.2 使用简单的内容页 482
14.1.3 ContentPlaceHolder控件
里默认内容 485
14.1.4 相对路径的处理 486
14.1.5 div+css方式布局母版页 488
14.1.6 通过Web.config文件全局
设置母版页 490
14.2 在母版页和内容页之间传递数据 491
14.2.1 使用Page.Master属性 492
14.2.2 使用MasterType指令 492
14.2.3 使用MasterPage.FindControl
方法 492
14.3 以编程方式设置母版页 493
14.4 嵌套母版页 493
14.4.1 一个嵌套母版页示例 494
14.4.2 嵌套母版页中的控件访问 495
14.5 本章小结 497
第15章 主题和皮肤 498
15.1 使用ASP.NET中的主题 498
15.1.1 主题与CSS的区别 498
15.1.2 主题文件夹和外观 499
15.1.3 给单个ASP.NET页面应用
主题 500
15.1.4 StyleSheetTheme属性 501
15.1.5 把主题应用于整个应用
程序 502
15.1.6 禁用服务器控件中的
主题 503
15.1.7 禁用Web页面上的主题
特性 503
15.2 创建自己的主题 504
15.2.1 创建皮肤文件 504
15.2.2 在主题中包含CSS文件 506
15.2.3 在主题中包含图像 508
15.3 定义多个皮肤选项 510
15.4 以编程的方式设置主题 511
15.4.1 编程指定页面的主题 512
15.4.2 编程指定控件的SkinID 512
15.5 理解Page和Master页面的
EnableTheming属性 512
15.6 本章小结 513
第16章 站点导航 514
16.1 多视图页面 514
16.1.1 MultiView控件 515
16.1.2 Wizard控件 521
16.2 理解站点地图 526
16.2.1 Web.sitemap 文件 527
16.2.2 配置多个站点地图 528
16.3 SiteMapDataSource控件 529
16.3.1 绑定站点地图 530
16.3.2 自定义显示站点地图 531
16.4 SiteMapPath控件 534
16.4.1 在网站导航中使用SiteMap
Path控件 534
16.4.2 自定义链接样式属性 536
16.4.3 自定义模板属性 537
16.4.4 自定义显示在链接之间
的字符 538
16.4.5 反转SiteMapPath控件所
显示的路径的方向 538
16.4.6 限制显示的父链接的数量 539
16.5 处理站点地图文件 540
16.5.1 编程枚举站点地图节点 540
16.5.2 编程修改内存中的站点
地图节点 542
16.5.3 自定义站点地图信息 543
16.6 自定义SiteMapProvider从数据库中
读取站点地图数据结构 544
16.6.1 数据表设计 544
16.6.2 定义SqlSiteMapProvider 544
16.6.3 配置自定义站点地图提供
程序 549
16.7 站点地图安全性调整 550
16.7.1 启用安全性调整 550
16.7.2 使用角色 551
16.7.3 对多个站点地图或提供程序
使用安全性调整 552
16.7.4 性能注意事项 552
16.8 TreeView控件 552
16.8.1 TreeView结构 552
16.8.2 使用SiteMapDataSource
绑定TreeView 554
16.8.3 使用程序动态建立TreeView
节点 554
16.8.4 使用XML数据源绑定
TreeView 556
16.8.5 使用数据库绑定TreeView 558
16.8.6 按需填充TreeView 560
16.8.7 TreeView样式 562
16.8.8 添加复选框 565
16.9 Menu控件 568
16.9.1 Menu控件结构 568
16.9.2 Menu控件显示模式 569
16.9.3 从数据库动态绑定Menu
控件 570
16.9.4 Menu样式 572
16.9.5 Menu模板 574
16.10 本章小结 575
第四部分 ASP.NET高级话题
第17章 ASP.NET状态管理 578
17.1 ASP.NET状态管理概述 578
17.1.1 服务器端状态管理 578
17.1.2 客户端状态管理 579
17.2 Response对象 580
17.3 Request对象 582
17.4 Server对象 584
17.5 Cookie 586
17.5.1 创建Cookie 587
17.5.2 控制Cookie的范围 588
17.5.3 读取Cookie 589
17.5.4 修改Cookie 591
17.5.5 删除Cookie 591
17.5.6 Cookie的优点与局限性 591
17.6 会话状态 592
17.6.1 会话变量 592
17.6.2 会话标识符 593
17.6.3 会话状态模式 594
17.6.4 会话状态事件 608
17.6.5 会话状态的生命周期 609
17.6.6 遍历与销毁会话状态 610
17.6.7 会话状态的优点与局限性 610
17.7 视图状态 611
17.7.1 写入和读取视图状态 611
17.7.2 保证视图状态的安全 612
17.7.3 视图状态的优点与局限性 613
17.7.4 ViewStateMode 614
17.8 ASP.NET路由 614
17.8.1 路由与URL模式 614
17.8.2 添加与使用路由 615
17.9 本章小结 617
第18章 自定义服务器控件 618
18.1 创建简单的自定义服务器控件 618
18.1.1 创建MyLink控件 619
18.1.2 创建支持样式属性的
MyLink控件 620
18.1.3 通过派生现有的控件来
创建MyLink控件 622
18.1.4 呈现过程 624
18.2 元数据特性 624
18.2.1 应用于控件的特性 625
18.2.2 应用于公共属性的特性 626
18.2.3 应用于事件成员的特性 628
18.3 视图状态与控件状态 628
18.4 事件处理 632
18.4.1 回传数据与change事件 632
18.4.2 触发回传 634
18.5 简单属性和子属性 635
18.5.1 定义MyBook控件 636
18.5.2 定义子属性Author 639
18.5.3 定义类型转换器AuthorConverter 641
18.5.4 使用MyBook控件 643
18.6 集合属性 644
18.7 自定义状态管理 648
18.7.1 定义MyNewBook控件 649
18.7.2 定义子属性
StateManagedAuthor 652
18.7.3 定义类型转换器StateManaged
AuthorConverter 655
18.7.4 使用MyNewBook控件 657
18.8 组合式控件 658
18.9 本章小结 662
第19章 ASP.NET缓存 663
19.1 理解ASP.NET缓存 663
19.2 输出缓存 664
19.2.1 使用@OutputCache指令
以声明的方式设置缓存 664
19.2.2 ASP.NET中的缓存配置 667
19.2.3 自定义缓存控制 668
19.2.4 使用HttpCachePolicy类以
编程的方式设置缓存 669
19.2.5 部分页缓存 671
19.2.6 缓存后替换 672
19.2.7 检查缓存页的有效性 674
19.2.8 使用缓存键依赖项缓存页
输出 676
19.2.9 使用文件依赖项缓存页
输出 676
19.3 数据缓存 677
19.3.1 将项添加到缓存中 677
19.3.2 检索缓存项的值 680
19.3.3 从缓存中删除项 681
19.4 高级缓存依赖 681
19.4.1 SQL Server 2005与SQL
Server 2008缓存依赖 681
19.4.2 自定义缓存依赖 685
19.5 自定义输出缓存提供程序 688
19.6 分布式缓存Velocity 693
19.6.1 安装与操作Velocity 693
19.6.2 存储与检索简单的数据 696
19.6.3 存储与检索复杂的数据 700
19.6.4 使用分区与标签 704
19.6.5 锁定模型 705
19.7 本章小结 706
第20章 多语言本地化应用程序 707
20.1 ASP.NET网页资源 707
20.1.1 全局资源文件 709
20.1.2 本地资源文件 709
20.1.3 全局与本地资源文件
使用建议 710
20.2 在网页中使用资源 710
20.2.1 隐式本地化 710
20.2.2 显式本地化 711
20.2.3 以编程方式检索资源值 711
20.3 为不同的语言选择资源文件 712
20.3.1 以声明方式设置区域性和
UI区域性 713
20.3.2 以编程方式设置区域性和
UI区域性 714
20.3.3 显式地选择页面的显示
语言 714
20.4 CultureInfo类 716
20.4.1 CultureInfo类的方法 716
20.4.2 CurrentCulture属性 718
20.4.3 CurrentUICulture属性 718
20.4.4 InvariantCulture属性 719
20.4.5 其他属性 719
20.5 System.Globalization命名空间 720
20.5.1 日历 720
20.5.2 日期和时间 722
20.5.3 数值型数据 726
20.5.4 数据的比较和排序 728
20.6 设置编码 735
20.7 本章小结 735
第21章 ASP.NET Web部件 736
21.1 什么是Web部件 736
21.2 Web部件控件集 737
21.2.1 基本要素 737
21.2.2 控件概述 738
21.3 创建简单的Web部件页面 739
21.3.1 Web部件的使用方法 739
21.3.2 Web部件页面创建示例 740
21.3.3 Web部件生命周期 747
21.4 页显示模式 749
21.4.1 BrowseDisplayMode
(浏览模式) 749
21.4.2 DesignDisplayMode
(设计模式) 749
21.4.3 EditDisplayMode(编辑
模式) 751
21.4.4 CatalogDisplayMode
(目录模式) 755
21.4.5 ConnectDisplayMode
(连接模式) 757
21.5 Web部件的高级应用 758
21.5.1 自定义Web部件 758
21.5.2 自定义谓词 763
21.5.3 自定义编辑器 764
21.5.4 连接Web部件 767
21.5.5 导出导入Web部件 773
21.5.6 自定义个性化数据提供
程序 778
21.5.7 配置文件中的WebParts
元素 782
21.6 本章小结 783
【责任编辑:云霞 TEL:(010)68476606】
点赞 0