标题：学通ASP.NET的24堂课
图书信息
作者：房大伟、刘云峰、吕双　
出版社: 清华大学出版社; 第1版 (2011年6月10日)  　　丛书名: 软件开发羊皮卷 　　平装: 722页 　　正文语种: 简体中文 　　开本: 16 　　ISBN: 9787302255406 　　条形码: 9787302255406 　　产品尺寸: 26.6 x 20.6 x 3 cm ;
内容简介
本书以24堂课的形式，从初中级用户的角度出发，全面讲述了使用ASP.NET进行程序开发的必备知识和技能，内容安排科学合理，突出学、练、用相结合。主要内容包括：走进ASP.NET世界、C#语言基础入门、流程控制语句、面向对象程序设计、ASP.NET内置对象、常用服务器控件、ASP.NET验证控件、ADO.NET数据库开发技术、数据绑定控件、Web用户控件、母版页技术应用、网站主题与皮肤、网站导航技术、ASP.NET缓存应用、AJAX无刷新技术、LINQ数据访问技术、程序调试与错误处理、Web开发中文件处理技术、利用GDI+绘制Web图形图像、水晶报表技术、Web Services（服务）技术、      ASP.NET制作网站留言板、AJAX校友录数码相册网，以及仿百度知道之明日知道（基于多层架构）。
本书适合有志于从事软件开发的初学者、高校计算机相关专业学生，也可作为软件开发人员的参考手册或者高校的教学参考书。
本书通过教学视频、实例训练、综合应用、项目实践、自我测试、行动指南逐步深入和强化训练等方式，并辅之以心理励志，来持续激发读者主动学习、自发学习。
本书给出了321个小型实例，210个综合应用，6个项目案例（部分在光盘中），各类技巧、试验200余个，测试题目210个，以方便读者训练、测试和快速提升。
本书DVD光盘给出了110集（303段）多媒体教学视频讲解，每个实例都给出了相应的源程序，可直接复制源码学习或应用。
图书目录
第1部分  基础篇
第1堂课  走进ASP.NET的世界 3
视频讲解：268分钟
1.1  Web开发基础知识 4
1.1.1  两大网络应用体系 4
1.1.2  HTML与HTTP 4
1.1.3  动态页面与静态页面 4
1.2  亲密接触ASP.NET 5
1.2.1  欣赏ASP.NET成功案例 5
1.2.2  追溯ASP.NET发展史 6
1.2.3  ASP.NET新特性 6
1.2.4  ASP.NET网站运行原理 7
1.2.5  .NET Framework介绍 7
1.3  ASP.NET开发环境的搭建 8
1.3.1  Visual Studio 2008简介 8
1.3.2  安装Visual Studio 2008 9
1.3.3  配置Visual Studio 2008 11
1.3.4  IIS安装和配置 12
1.4  ASP.NET网页语法 13
1.4.1  ASP.NET网页扩展名 13
1.4.2  常用页面指令 14
1.4.3  注释ASPX文件内容 15
1.4.4  ASP.NET服务器控件标记语法 15
1.4.5  代码块语法 17
1.4.6  表达式语法 18
1.5  第一个ASP.NET网站 19
1.5.1  创建ASP.NET网站 19
1.5.2  设计Web页面 20
1.5.3  添加ASP.NET文件夹 21
1.5.4  添加配置文件Web.config 22
1.5.5  运行应用程序 22
1.6  ASP.NET技术学习资源 23
1.6.1  利用MSDN帮助学习 23
1.6.2  利用ASP.NET编程词典学习 24
1.7  照猫画虎——基本功训练 25
1.7.1  基本功训练1——创建存放公共类的
文件夹 25
1.7.2  基本功训练2——使用代码块语法输出
指定字符 25
1.7.3  基本功训练3——自定义快捷工具栏 26
1.7.4  基本功训练4——添加程序集引用 27
1.7.5  基本功训练5——更改Visual Studio 2008
环境设置 28
1.8  情景应用——拓展与实践 29
1.8.1  情景应用1——管理重复使用的代码片断 29
1.8.2  情景应用2——连接默认错误页 29
1.8.3  情景应用3——设置验证级别防止非法
登录 30
1.8.4  情景应用4——限制上传文件大小与时间 31
1.8.5  情景应用5——加密Web.config配置
文件 32
1.9  自我测试 33
1.10  行动指南 34
1.11  成功可以复制——80后新贵、泡泡网
CEO李想 35
第2堂课  C#语言基础入门 37
视频讲解：279分钟
2.1  C#语言轻松入门 38
2.1.1  从第1个C#程序说起 38
2.1.2  C#代码书写规则 38
2.1.3  C#与.NET的完美结合 39
2.2  数据类型 40
2.2.1  值类型 40
2.2.2  引用类型 41
2.2.3  装箱和拆箱 41
2.3  变量和常量 42
2.3.1  变量的命名规则与惯例 42
2.3.2  数据类型与变量 43
2.3.3  变量的声明与赋值 43
2.3.4  变量的作用域和生存周期 44
2.3.5  常量的定义 44
2.4  数据类型转换 44
2.4.1  隐式类型转换 45
2.4.2  显式类型转换 45
2.5  运算符及表达式 46
2.5.1  算术运算符与算术表达式 46
2.5.2  关系运算符与关系表达式 47
2.5.3  赋值运算符与赋值表达式 47
2.5.4  逻辑运算符与逻辑表达式 48
2.5.5  位运算符 48
2.5.6  其他运算符 49
2.5.7  运算符的优先集 50
2.6  字符串处理技巧 50
2.6.1  比较字符串 51
2.6.2  定位字符及子串 51
2.6.3  格式化字符串 51
2.6.4  截取字符串 52
2.6.5  分裂字符串 52
2.6.6  插入和填充字符串 52
2.6.7  删除和剪切字符串 53
2.6.8  复制字符串 53
2.6.9  替换字符串 54
2.7  数组的应用 54
2.7.1  数组的声明 54
2.7.2  初始化数组 54
2.7.3  数组的遍历 55
2.8  照猫画虎——基本功训练 55
2.8.1  基本功训练1——使用结构类型显示
员工信息 55
2.8.2  基本功训练2——使用引用类型实现对
对象的引用 56
2.8.3  基本功训练3——判断合法的用户名称和
密码 57
2.8.4  基本功训练4——制作一个简单加法
计算器 58
2.8.5  基本功训练5——加密用户密码等重要的
数据信息 58
2.9  情景应用——拓展与实践 60
2.9.1  情景应用1——使用深复制和浅复制显示
员工信息 60
2.9.2  情景应用2——按值传递引用类型显示
用户年龄 61
2.9.3  情景应用3——优化程序性能之装箱和
拆箱的最小化 62
2.9.4  情景应用4——两种比较不错的密码修改
方案 63
2.9.5  情景应用5——将字符数组写入到字符串 65
2.10  自我测试 66
2.11  行动指南 67
2.12  成功可以复制——“杀毒王”
王江民 68
第3堂课  流程控制语句 71
视频讲解：98分钟
3.1  走进if条件语句 72
3.1.1  if语句的使用 72
3.1.2  使用if…else语句实现条件选择 72
3.1.3  if语句的嵌套使用 74
3.2  switch语句的使用 76
3.2.1  掌握switch语句 76
3.2.2  使用switch语句实现多分支选择 77
3.3  while和do…while语句的使用 78
3.3.1  使用while语句实现代码循环 79
3.3.2  使用do…while语句至少执行一次循环 80
3.4  for和foreach语句的使用 81
3.4.1  通过for语句实现代码循环 81
3.4.2  使用foreach语句遍历数据集合 83
3.5  解析跳转语句 84
3.5.1  使用break语句跳出循环 84
3.5.2  使用continue语句继续程序的执行 86
3.5.3  通过使用goto语句实现程序跳转 87
3.5.4  使用return语句使程序返回 88
3.6  照猫画虎——基本功训练 89
3.6.1  基本功训练1——百钱买百鸡 89
3.6.2  基本功训练2——简单的循环计数器 90
3.6.3  基本功训练3——判断你人生的
黄金阶段 91
3.6.4  基本功训练4——“大乐透”号码的
排列 92
3.6.5  基本功训练5——输出五言绝句
《静夜思》 93
3.7  情景应用——拓展与实践 94
3.7.1  情景应用1——“双色球”号码排序 94
3.7.2  情景应用2——接触歌德巴赫 95
3.7.3  情景应用3——约瑟夫环 96
3.7.4  情景应用4——二分查找算法 97
3.7.5  情景应用5——快速排序算法 99
3.8  自我测试 100
3.9  行动指南 101
3.10  成功可以复制——初中站长的
创业故事 102
第4堂课  面向对象程序设计 103
视频讲解：106分钟
4.1  面向对象知多少 104
4.1.1  解析面向对象 104
4.1.2  面向对象三大支柱 105
4.2  面向对象中类与类成员 106
4.2.1  用ASP.NET创建类 106
4.2.2  类的定义及其访问权限 107
4.2.3  实例化类对象 109
4.2.4  类的成员字段 109
4.2.5  类的成员方法 111
4.2.6  类的成员属性 113
4.2.7  构造函数和析构函数 114
4.3  面向对象之封装特性 115
4.3.1  揭密封装特性 116
4.3.2  封装的应用 116
4.4  面向对象之继承特性 117
4.4.1  继承概述 117
4.4.2  应用单继承 118
4.4.3  初识支持多重继承的接口 119
4.4.4  应用多重继承 121
4.5  面向对象之多态特性 123
4.5.1  认识多态 123
4.5.2  多态体验之一重载 123
4.5.3  多态体验之一重写 123
4.6  照猫画虎——基本功训练 124
4.6.1  基本功训练1——调用类成员方法标记
录入信息 124
4.6.2  基本功训练2——访问存储公司名称的
静态类属性 125
4.6.3  基本功训练3——利用类制作简单加减法
计算器 126
4.6.4  基本功训练4——1=1和“1”=“1”的
探讨 127
4.6.5  基本功训练5——直线、图和正方形的
归类 128
4.7  情景应用——拓展与实践 130
4.7.1  情景应用1——实现具有相同名称的接口
方法 130
4.7.2  情景应用2——使用分部类记录学生
信息 131
4.7.3  情景应用3——以包含/委托模型显示
比赛信息 132
4.7.4  情景应用4——.Net框架自身提供的
属性 133
4.7.5  情景应用5——通过抽象类和抽象方法
确定动物叫声行为 134
4.8  自我测试 135
4.9  行动指南 136
4.10  成功可以复制——缔造华人的硅谷
传奇杨致远 137
第5堂课  ASP.NET内置对象 139
视频讲解：97分钟
5.1  Response对象 140
5.1.1  初识Response对象 140
5.1.2  Response对象的常用属性 140
5.1.3  Response对象的常用方法 141
5.1.4  Response对象应用 143
5.2  Request对象 143
5.2.1  初识Request对象 143
5.2.2  Request对象的常用属性 143
5.2.3  Request对象的常用方法 145
5.2.4  Request对象应用 145
5.3  Application对象 146
5.3.1  初识Application对象 146
5.3.2  Application对象的常用属性 146
5.3.3  Application对象的常用方法 148
5.3.4  Application对象的常用事件 149
5.4  Session对象 149
5.4.1  初识Session对象 150
5.4.2  Session对象的常用属性 150
5.4.3  Session对象的常用方法 151
5.4.4  Session对象应用 151
5.5  Cookie对象 153
5.5.1  初识Cookie对象 153
5.5.2  Cookie对象的常用属性 153
5.5.3  Cookie对象的常用方法 154
5.6  Server对象 155
5.6.1  初识Server对象 155
5.6.2  Server对象的常用属性 155
5.6.3  Server对象的常用方法 156
5.6.4  Server对象应用 157
5.7  照猫画虎——基本功训练 158
5.7.1  基本功训练1——获取客户端IP地址 158
5.7.2  基本功训练2——获取服务器计算机名 158
5.7.3  基本功训练3——设置用户在线时间 159
5.7.4  基本功训练4——输出文本文件的内容 160
5.7.5  基本功训练5——判断用户登录状态 161
5.8  情景应用——拓展与实践 162
5.8.1  情景应用1——绘制并输出漂亮的图片 162
5.8.2  情景应用2——开发站内搜索引擎 164
5.8.3  情景应用3——统计网站总访问量 165
5.8.4  情景应用4——实现密码记忆功能 166
5.8.5  情景应用5——制作简单聊天室 168
5.9  自我测试 171
5.10  行动指南 172
5.11  成功可以复制——征途巨人史玉柱的
第一桶金 173
第2部分  提高篇
第6堂课  常用服务器控件 177
视频讲解：93分钟
6.1  认识服务器控件 178
6.2  文本类型控件 178
6.2.1  使用Label控件显示文本 178
6.2.2  使用TextBox控件输入数据 180
6.3  按钮类型控件 183
6.3.1  通过Button控件提交表单 183
6.3.2  显示图像的ImageButton控件 186
6.4  选择类型控件 187
6.4.1  呈现列表的ListBox控件 187
6.4.2  实现下拉框的DropDownList控件 191
6.4.3  实现单选的RadioButton控件 195
6.4.4  能够多选的CheckBox控件 197
6.5  图像显示类型控件 200
6.5.1  显示图像的Image控件 200
6.5.2  设置热点区域的ImageMap控件 202
6.6  文件上传控件 205
6.6.1  FileUpload控件的概述 205
6.6.2  FileUpload控件的属性 206
6.6.3  FileUpload控件的方法 207
6.7  照猫画虎——基本功训练 209
6.7.1  基本功训练1——显示密码格式文本 209
6.7.2  基本功训练2——动态添加商品信息 209
6.7.3  基本功训练3——显示长日期格式时间 210
6.7.4  基本功训练4——限制文本框中输入的
字符长度 211
6.7.5  基本功训练5——简单的加法运算器 212
6.8  情景应用——拓展与实践 213
6.8.1  情景应用1——输出选择的商品名称 213
6.8.2  情景应用2——设置服务器控件热键 214
6.8.3  情景应用3——给服务器控件添加
不存在的属性 214
6.8.4  情景应用4——设置窗体的默认焦点
控件 215
6.8.5  情景应用5——页面提交时弹出
确认窗口 216
6.9  自我测试 216
6.10  行动指南 217
6.11  成功可以复制——使计算机成为
生活的必需品 218
第7堂课  ASP.NET验证控件 221
视频讲解：63分钟
7.1  何谓验证控件 222
7.1.1  什么是验证控件 222
7.1.2  验证控件的工作原理 222
7.2  非空数据验证 223
7.2.1  RequiredFieldValidator控件 223
7.2.2  RequiredFieldValidator控件的常用属性 223
7.2.3  验证用户是否输入信息 224
7.3  数据比较验证 225
7.3.1  CompareValidator控件 225
7.3.2  CompareValidator控件的常用属性 225
7.3.3  验证两次密码输入是否一致 228
7.4  数据范围验证 229
7.4.1  RangeValidator控件 229
7.4.2  RangeValidator控件的常用属性 230
7.4.3  验证输入数字是否在指定范围内 231
7.5  数据输入格式验证 232
7.5.1  RegularExpressionValidator控件 232
7.5.2  RegularExpressionValidator控件常用
属性 232
7.5.3  验证邮件格式是否正确 234
7.6  验证错误信息汇总 236
7.6.1  ValidationSummary控件 236
7.6.2  ValidationSummary控件的常用属性 236
7.6.3  注册页面错误信息汇总 238
7.7  照猫画虎——基本功训练 239
7.7.1  基本功训练1——验证物流网址格式
是否正确 239
7.7.2  基本功训练2——验证学生注册系统中的
邮政编码 240
7.7.3  基本功训练3——身份证管理系统中验证
身份证号码 240
7.7.4  基本功训练4——验证会员注册时输入的
年龄范围 241
7.7.5  基本功训练5——验证会员充值系统中的
充值金额 242
7.8  情景应用——拓展与实践 243
7.8.1  情景应用1——机票预订系统中限制注册
用户名 243
7.8.2  情景应用2——博客中验证用户名是否是
汉字 244
7.8.3  情景应用3——出国护照管理系统中验证
护照编号 245
7.8.4  情景应用4——验证会员充值系统中会员
密码格式 246
7.8.5  情景应用5——验证会员注册时输入的
密码长度 247
7.9  自我测试 248
7.10  行动指南 249
7.11  成功可以复制——图文世界的
缔造者 249
第8堂课  ADO.NET数据库开发技术 251
视频讲解：140分钟
8.1  ADO.NET技术知多少 252
8.1.1  ADO.NET对象模型 252
8.1.2  趣味理解ADO.NET 252
8.2  建立数据库连接Connection对象 253
8.2.1  Connection对象概述 253
8.2.2  数据库连接字符串 254
8.2.3  使用SqlConnection对象连接SQL Server
数据库 255
8.2.4  使用OleDbConnection对象连接OLEDB
数据库 256
8.2.5  使用OdbcConnection对象连接ODBC
数据源 257
8.2.6  使用OracleConnection对象连接Oracle
数据库 257
8.3  执行数据库命令Command对象 257
8.3.1  Command对象概述 258
8.3.2  使用Command对象添加联系人管理
数据 260
8.3.3  使用Command对象修改联系人管理
数据 261
8.3.4  使用Command对象删除联系人管理
数据 262
8.3.5  调用存储过程管理联系人数据 263
8.4  连线模式数据访问DataReader对象 265
8.4.1  DataReader对象概述 266
8.4.2  使用DataReader对象获取数据 266
8.5  离线模式数据访问DataSet和
DataAdapter 268
8.5.1  离线模式核心对象——DataSet对象 268
8.5.2  桥梁架设工程师——DataAdapter对象 268
8.5.3  填充并访问DataSet表中数据 269
8.5.4  修改DataSet并更新数据源
（批量更新） 270
8.6  照猫画虎——基本功训练 272
8.6.1  基本功训练1——访问存储用户信息的
Excel文件 272
8.6.2  基本功训练2——ASP.NET实现通用
数据库连接 273
8.6.3  基本功训练3——DataAdapter对象的
Update方法批量更新商品数据 274
8.6.4  基本功训练4——合并两个数据集的
数据内容 275
8.6.5  基本功训练5——使用DataAdapter
填充多个表 276
8.7  情景应用——拓展与实践 278
8.7.1  情景应用1——用户登录中预防
SQL注入攻击 278
8.7.2  情景应用2——批量删除发布的
供求信息 279
8.7.3  情景应用3——使用DataView排序供求
信息数据 281
8.7.4  情景应用4——将个人头像以二进制流形式
存储到数据库中 282
8.7.5  情景应用5——强类型DataSet与
SqlDataAdapter搭配查询 284
8.8  自我测试 286
8.9  行动指南 287
8.10  成功可以复制——世界第一人称
射击游戏之父 288
第9堂课  数据绑定控件 291
视频讲解：203分钟
9.1  GridView控件 292
9.1.1  GridView控件概述 292
9.1.2  GridView控件常用的属性、方法和事件 292
9.1.3  制定GridView控件的列 295
9.1.4  在GridView控件中对数据进行
编辑操作 296
9.1.5  使用GridView控件绑定数据源 299
9.2  DataList控件 301
9.2.1  DataList控件概述 302
9.2.2  使用DataList控件绑定数据源 302
9.2.3  在DataList控件中对数据进行编辑操作 304
9.3  ListView控件与DataPager控件 307
9.3.1  ListView控件与DataPager控件概述 307
9.3.2  使用ListView控件与DataPager控件分页
显示数据 308
9.4  照猫画虎——基本功训练 309
9.4.1  基本功训练1——根据系别查询班级
详细信息 309
9.4.2  基本功训练2——使用GridView控件
分页显示学生信息 311
9.4.3  基本功训练3——在GridView控件中
排序数据 312
9.4.4  基本功训练4——为GridView控件实现
复选功能 313
9.4.5  基本功训练5——分页显示DataList控件
中的数据 314
9.5  情景应用——拓展与实践 317
9.5.1  情景应用1——在GridView中实现
商品信息自动编号 317
9.5.2  情景应用2——获取GridView控件中
隐藏的列值 318
9.5.3  情景应用3——学生成绩不及格设置
单元格突出显示为红色 319
9.5.4  情景应用4——GridView复选框绑定列
设置商品是否上架 320
9.5.5  情景应用5——使用绑定表达式高亮显示
搜索关键字 322
9.6  自我测试 323
9.7  行动指南 324
9.8  成功可以复制——微型博客Twitter
创始人 325
第10堂课  Web用户控件 327
视频讲解：69分钟
10.1  Web用户控件的概述 328
10.1.1  什么是Web用户控件 328
10.1.2  Web用户控件的优点 328
10.2  创建及使用Web用户控件 328
10.2.1  创建Web用户控件 328
10.2.2  将Web用户控件添加至网页 330
10.2.3  使用用户控件制作博客导航条 330
10.3  设置用户控件 332
10.3.1  访问用户控件的属性 332
10.3.2  访问用户控件中的服务器控件 333
10.3.3  将Web网页转化为用户控件 334
10.4  照猫画虎——基本功训练 335
10.4.1  基本功训练1——利用用户控件显示
热点新闻 335
10.4.2  基本功训练2——通过用户控件实现
站内搜索 336
10.4.3  基本功训练3——使用用户控件开发
会员注册 337
10.4.4  基本功训练4——通过用户控件实现
用户登录 339
10.4.5  基本功训练5——利用用户控件开发
在线投票 340
10.5  情景应用——拓展与实践 343
10.5.1  情景应用1——使用用户控件实现数据
分页导航 343
10.5.2  情景应用2——开发具有文件上传功能的
用户控件 346
10.5.3  情景应用3——开发具有选择日期功能的
用户控件 347
10.5.4  情景应用4——开发具有虚拟键盘功能的
用户控件 348
10.5.5  情景应用5——通过用户控件显示用户
信息 350
10.6  自我测试 351
10.7  行动指南 352
10.8  成功可以复制——因特网的点火人 353
第11堂课  母版页技术应用 355
视频讲解：64分钟
11.1  母版页的概述 356
11.1.1  母版页和内容页 356
11.1.2  母版页运行机制 356
11.1.3  母版页的优点 356
11.2  母版页的使用 356
11.2.1  创建母版页 357
11.2.2  创建内容页 358
11.2.3  设置母版页应用范围 358
11.2.4  母版页的事件 359
11.3  照猫画虎——基本功训练 359
11.3.1  基本功训练1——创建母版页 359
11.3.2  基本功训练2——添加内容页 361
11.3.3  基本功训练3——设置网站中网页的
默认内容 363
11.3.4  基本功训练4——以编程方式设置网页的
母版 364
11.3.5  基本功训练5——访问母版页上的控件 364
11.4  情景应用——拓展与实践 365
11.4.1  情景应用1——实现网站通用登录
功能 365
11.4.2  情景应用2——统计网站访问的人数 366
11.4.3  情景应用3——嵌套母版页的方式开发
博客主页 368
11.4.4  情景应用4——提高母版页的访问
性能 370
11.4.5  情景应用5——访问母版页中的属性 370
11.5  自我测试 371
11.6  行动指南 373
11.7  成功可以复制——暴雪公司的
领航者 373
第12堂课  网站主题与皮肤 375
视频讲解：61分钟
12.1  主题的概述 376
12.1.1  主题组成元素 376
12.1.2  文件存储和组织方式 376
12.2  掌握如何创建主题 377
12.2.1  创建外观文件 377
12.2.2  为主题添加CSS样式 378
12.3  应用主题 380
12.3.1  使用和禁用主题 380
12.3.2  动态加载主题 381
12.4  照猫画虎——基本功训练 384
12.4.1  基本功训练1——在留言板中应用
主题 384
12.4.2  基本功训练2——为会员注册换几套
新装 385
12.4.3  基本功训练3——在主题中添加绚丽
图片 386
12.4.4  基本功训练4——设计网站注册模块
外观 386
12.4.5  基本功训练5——设计网站登录模块
外观 387
12.5  情景应用——拓展与实践 388
12.5.1  情景应用1——在留言本中设置文本框
主题 388
12.5.2  情景应用2——为信息表格设置多种
主题 389
12.5.3  情景应用3——通过SkinID为控件换
主题 390
12.5.4  情景应用4——为文本框准备
几件衣服 391
12.5.5  情景应用5——禁止服务器控件更换
主题 392
12.6  自我测试 393
12.7  行动指南 394
12.8  成功可以复制——3D王国的开创者 395
第13堂课  网站导航技术 397
视频讲解：83分钟
13.1  站点地图概述 398
13.2  TreeView控件 399
13.2.1  TreeView控件的常用属性 399
13.2.2  TreeView控件的常用事件 400
13.2.3  TreeView控件的基本应用 401
13.3  Menu控件 404
13.3.1  Menu控件的常用属性 404
13.3.2  Menu控件的常用事件 405
13.3.3  Menu控件的基本应用 407
13.4  SiteMapPath控件 408
13.4.1  SiteMapPath控件的常用属性 408
13.4.2  SiteMapPath控件的常用事件 409
13.4.3  SiteMapPath控件的基本应用 409
13.5  照猫画虎——基本功训练 410
13.5.1  基本功训练1——实现网站后台功能
导航 410
13.5.2  基本功训练2——动态添加公司组织
结构 411
13.5.3  基本功训练3——动态实现音乐网站
导航 412
13.5.4  基本功训练4——实现新闻网站导航 413
13.5.5  基本功训练5——实现学生管理系统
导航 414
13.6  情景应用——拓展与实践 415
13.6.1  情景应用1——开发OA系统导航 415
13.6.2  情景应用2——开发选课系统导航 416
13.6.3  情景应用3——视频网站分类导航 418
13.6.4  情景应用4——提示用户在网站中的
位置 419
13.6.5  情景应用5——实现电子商城网站
导航 419
13.7  自我测试 420
13.8  行动指南 421
13.9  成功可以复制——“盖茨第二” 422
第14堂课  ASP.NET缓存应用 425
视频讲解：71分钟
14.1  ASP.NET缓存概述 426
14.2  页面输出缓存 426
14.2.1  页面输出缓存概述 426
14.2.2  设置页面缓存的过期时间为当前时间
加上60秒 427
14.3  页面部分缓存 428
14.3.1  页面部分缓存概述 428
14.3.2  使用@OutputCache指令设置用户控件
缓存功能 429
14.3.3  使用PartialCachingAttribute类设置用户
控件缓存功能 430
14.3.4  使用ControlCachePolicy类 431
14.3.5  缓存后替换 433
14.4  页面数据缓存 433
14.5  照猫画虎——基本功训练 435
14.5.1  基本功训练1——使用参数缓存网页
多个版本 435
14.5.2  基本功训练2——使用编程方式缓存
网页的多个版本 436
14.5.3  基本功训练3——同时在.aspx页面和用户
控件.ascx中设置缓存 437
14.5.4  基本功训练4——将员工信息加入
缓存中 438
14.5.5  基本功训练5——将数据项从缓存中
移除 439
14.6  情景应用——拓展与实践 440
14.6.1  情景应用1——应用AdRotator控件
轮播广告图片 440
14.6.2  情景应用2——使用Substitution控件
API建立缓存后替换功能 441
14.6.3  情景应用3——使用“索引值/数值”
将作者信息加入缓存中 442
14.6.4  情景应用4——使用“索引值/数值”
缓存DataSet 443
14.6.5  情景应用5——缓存XML文件 444
14.7  自我测试 445
14.8  行动指南 446
14.9  成功可以复制——迅雷创始人
邹胜龙 447
第15堂课  AJAX无刷新技术 449
视频讲解：70分钟
15.1  ASP. NET AJAX初体验 450
15.1.1  AJAX开发模式 450
15.1.2  ASP.NET AJAX优点 451
15.1.3  探讨ASP.NET AJAX架构 451
15.2  ASP. NET AJAX服务器端控件 451
15.2.1  脚本管理员：ScriptManager控件 452
15.2.2  局部更新面板：UpdatePanel控件 452
15.2.3  定时操作器：Timer控件 455
15.3  完美体验：酷我交流聊天室 455
15.3.1  酷我交流聊天室概述 455
15.3.2  核心代码演练 456
15.4  炫酷效果营造者：AJAX Control 
Toolkit 457
15.4.1  安装AJAX Control Toolkit扩展控件
工具包 457
15.4.2  PasswordStrength：密码强度提示 458
15.4.3  TextBoxWatermark：添加水印提示 460
15.4.4  SlideShow：播放照片 462
15.5  照猫画虎——基本功训练 464
15.5.1  基本功训练1——实现在线考试倒计时
（Timer控件） 464
15.5.2  基本功训练2——嵌套化UpdatePanel
更新时间 465
15.5.3  基本功训练3——异步的分步式保存
注册用户信息 467
15.5.4  基本功训练4——协调两个UpdatePanel
控件之间的互动 468
15.5.5  基本功训练5——异步的一对多商品
明细表 469
15.6  情景应用——拓展与实践 470
15.6.1  情景应用1——异步的邮件发送功能
（带进度条提示） 470
15.6.2  情景应用2——网站气泡提示 472
15.6.3  情景应用3——AJAX购物车（嵌套
UpdatePanel+GridView） 473
15.6.4  情景应用4——搜索引擎中智能匹配
检索功能 474
15.6.5  情景应用5——仿当当网对图书实现
评级功能 476
15.7  自我测试 479
15.8  行动指南 480
15.9  成功可以复制——知识改变命运、科技
改变生活 481
第16堂课  LINQ数据访问技术 483
视频讲解：78分钟
16.1  LINQ技术概述 484
16.2  LINQ查询常用子句 485
16.2.1  from子句 485
16.2.2  where子句 486
16.2.3  select子句 487
16.2.4  orderby子句 487
16.3  使用LINQ操作SQL Server
数据库 488
16.3.1  建立LINQ数据源 488
16.3.2  执行数据的添加、修改、删除和查询
操作 489
16.3.3  灵活运用LinqDataSource控件 492
16.4  照猫画虎——基本功训练 494
16.4.1  基本功训练1——判断所有人员的年龄
是否都大于30岁 494
16.4.2  基本功训练2——取数组中的第一个
元素 495
16.4.3  基本功训练3——使用LINQ查询
ArrayList 496
16.4.4  基本功训练4——筛选指定类型的元素 497
16.4.5  基本功训练5——查找字符串中属于
标点类型的字符 498
16.5  情景应用——拓展与实践 499
16.5.1  情景应用1——查询用户及角色复合对象
列表 499
16.5.2  情景应用2——应用自定义方法筛选
数据 501
16.5.3  情景应用3——将字符串数组按元素
长度分组 502
16.5.4  情景应用4——按部门和编号排序人员
列表 503
16.5.5  情景应用5——反转人员列表的顺序 504
16.6  自我测试 505
16.7  行动指南 506
16.8  成功可以复制——中国通信设备行业的
领跑者任正非 507
第17堂课  程序调试与错误处理 509
视频讲解：49分钟
17.1  错误类型 510
17.1.1  语法错误 510
17.1.2  语义错误 510
17.1.3  逻辑错误 511
17.2  程序调试 511
17.2.1  设定断点 511
17.2.2  开始执行 512
17.2.3  中断执行 514
17.2.4  停止执行 514
17.2.5  单步执行 514
17.2.6  运行到指定位置 514
17.3  错误处理 515
17.3.1  服务器故障排除 515
17.3.2  ASP.NET中的异常处理 516
17.4  照猫画虎——基本功训练 519
17.4.1  基本功训练1——类型转换错误 519
17.4.2  基本功训练2——页面在客户端转向的
陷阱 521
17.4.3  基本功训练3——编写javascript代码时的
空格陷阱 522
17.4.4  基本功训练4——用可空符号??运算的
注意事项 525
17.4.5  基本功训练5——用DataReader读取数据时
产生的陷阱 526
17.5  情景应用——拓展与实践 528
17.5.1  情景应用1——为删除按钮添加删除确认
对话框 528
17.5.2  情景应用2——Web Service方法重载
产生的陷阱 530
17.5.3  情景应用3——放置隐藏字段的
陷阱 532
17.5.4  情景应用4——获取错误信息并到指定
页面 533
17.5.5  情景应用5——文件格式与文件读取的
陷阱 535
17.6  自我测试 537
17.7  行动指南 538
17.8  成功可以复制——软件业的华人教父
王嘉廉 539
第3部分  高级篇
第18堂课  Web开发中文件处理技术 543
视频讲解：51分钟
18.1  文件的基本操作 544
18.1.1  判断文件是否存在 544
18.1.2  创建文件 544
18.1.3  复制或移动文件 545
18.1.4  删除文件 546
18.1.5  获取文件基本信息 547
18.2  文件夹的基本操作 547
18.2.1  判断文件夹是否存在 547
18.2.2  创建文件夹 547
18.2.3  移动文件夹 548
18.2.4  删除文件夹 549
18.2.5  遍历文件夹中文件 550
18.3  文件写入和读取 551
18.3.1  文件的写入 551
18.3.2  文件的读取 552
18.4  照猫画虎——基本功训练 552
18.4.1  基本功训练1——判断文件是否正在
被使用 552
18.4.2  基本功训练2——更改文件名称 554
18.4.3  基本功训练3——使用通配符
过滤文件 554
18.4.4  基本功训练4——使用OpenRead方法打开
现有文件并读取 555
18.4.5  基本功训练5——使用OpenWrite方法
打开现有文件并进行写入 556
18.5  情景应用——拓展与实践 557
18.5.1  情景应用1——单文件上传 557
18.5.2  情景应用2——文件下载 558
18.5.3  情景应用3——使用GZip在线压缩
文件 559
18.5.4  情景应用4——使用对称算法加密
文件 561
18.5.5  情景应用5——在浏览器中访问Word
文件 562
18.6  自我测试 563
18.7  行动指南 564
18.8  成功可以复制——创造互联网
搜索时代 565
第19堂课  利用GDI+绘制Web图形图像 567
视频讲解：130分钟
19.1  GDI+绘图基础 568
19.1.1  GDI+概述 568
19.1.2  用GDI+能做什么 568
19.1.3  创建画布Graphics对象 569
19.1.4  创建画笔Pen对象 569
19.1.5  创建画刷Brush对象 570
19.2  基本图形绘制 574
19.2.1  GDI+中的直线和矩形 575
19.2.2  GDI+中的椭圆、弧和扇形 577
19.2.3  GDI+中的多边形 579
19.3  GDI+绘制图表的应用 581
19.3.1  柱形分析图商品销售情况 581
19.3.2  饼形图分析投票结果 583
19.3.3  折线图形分析股票走势 586
19.4  照猫画虎——基本功训练 590
19.4.1  基本功训练1——用曲线消除锯齿 590
19.4.2  基本功训练2——GDI+绘制基数样条 591
19.4.3  基本功训练3——绘制图形路径 592
19.4.4  基本功训练4——在GDI+中克隆
图像 593
19.4.5  基本功训练5——GDI+中的全局变换 593
19.5  情景应用——拓展与实践 595
19.5.1  情景应用1——绘制公章 595
19.5.2  情景应用2——纹理效果显示图像 596
19.5.3  情景应用3——绘制数字与字母组合的
验证码 597
19.5.4  情景应用4——仿Google绘制数字、字母
和中文扭曲验证码 599
19.5.5  情景应用5——在图片上水印文字
（支持批量水印） 600
19.6  自我测试 602
19.7  行动指南 603
19.8  成功可以复制——IT风云人物
鲍岳桥 604
第20堂课  水晶报表技术 605
视频讲解：136分钟
20.1  水晶报表简介 606
20.2  .NET平台下的Crystal报表 606
20.2.1  Crystal Reports.Net简介 606
20.2.2  Crystal报表设计器的环境介绍 606
20.2.3  Crystal报表区域介绍 607
20.3  Crystal报表数据源和数据访问
模式 608
20.3.1  Visual Studio 2008中Crystal Reports
数据源列举 609
20.3.2  报表数据访问模式之提取模式 609
20.3.3  报表数据访问模式之推入模式 612
20.4  水晶报表基本操作 616
20.4.1  水晶报表中数据的分组与排序 616
20.4.2  水晶报表中数据的筛选 618
20.5  水晶报表的高级应用 621
20.5.1  在水晶报表中使用图表 621
20.5.2  子报表的应用 622
20.6  照猫画虎——基本功训练 626
20.6.1  基本功训练1——报表中使用Access数据库
载入商品信息 626
20.6.2  基本功训练2——筛选月销售额大于100万
的商品 627
20.6.3  基本功训练3——使用查询来排序报表中
员工数据 629
20.6.4  基本功训练4——对客户消费信息进行
单层分组 630
20.6.5  基本功训练5——部门销售量占公司
总销售量的业绩百分比 631
20.7  情景应用——拓展与实践 633
20.7.1  情景应用1——电话号码登记表中设计
特殊字段、图和线 633
20.7.2  情景应用2——跨数据源查询学生
信息 635
20.7.3  情景应用3——多行多列交叉表在商品
名称查询中应用 638
20.7.4  情景应用4——在学生信息统计中动态
打开子报表 640
20.7.5  情景应用5——保持在子报表中最新的
通信记录 643
20.8  自我测试 645
20.9  行动指南 646
20.10  成功可以复制——中国第一程序员
求伯君 646
第21堂课  Web Services（服务）技术 649
视频讲解：63分钟
21.1  Web Services基础 650
21.2  创建Web服务 650
21.2.1  Web服务文件 650
21.2.2  Web服务代码隐藏文件 651
21.2.3  创建一个简单的Web服务 652
21.3  Web服务的基本应用 655
21.4  照猫画虎——基本功训练 657
21.4.1  基本功训练1——调用Web Service实现
简单计算器 657
21.4.2  基本功训练2——调用Web Service实现
添加用户信息 660
21.4.3  基本功训练3——Web Services调用存储过
程实现删除数据 662
21.4.4  基本功训练4——从Web Services中访问
服务器变量 663
21.4.5  基本功训练5——利用Web Service实现
产品编号 665
21.5  情景应用——拓展与实践 666
21.5.1  情景应用1——利用Web Service发送
手机短信 666
21.5.2  情景应用2——利用Web Service
发送E-mail邮件 667
21.5.3  情景应用3——利用Web服务获取
天气预报 668
21.5.4  情景应用4——利用Web服务上传和
下载图片 670
21.5.5  情景应用5——利用Web服务实现
验证码技术 673
21.6  自我测试 676
21.7  行动指南 677
21.8  成功可以复制——IT“大王”
王志东 678
第4部分  实战篇
第22堂课  ASP.NET制作网站留言板 681
视频讲解：30分钟
22.1  网站留言板概述 682
22.1.1  功能设计与业务流程 682
22.1.2  数据库设计 683
22.2  开发前技术准备 684
22.2.1  配置FreeTextBox组件 684
22.2.2  应用母版页 685
22.2.3  统一页面风格 687
22.3  主要开发过程 687
22.3.1  配置Web.Config 687
22.3.2  编写程序公共类 688
22.3.3  留言板主页设计 691
22.3.4  发表留言模块设计 692
22.3.5  留言信息查看页面设计 694
22.3.6  留言信息管理设计 698
22.3.7  回复留言设计 700
22.4  课堂小结 702
第23堂课  AJAX校友录数码相册网 703
视频讲解：40分钟
23.1  项目概述 704
23.2  项目总体设计 704
23.2.1  编写项目计划书 704
23.2.2  系统需求分析 706
23.2.3  系统设计目标 706
23.2.4  数据库设计 706
23.3  搭建项目开发环境 707
23.4  使用的关键技术 707
23.4.1  引用AjaxControlToolkit控件 707
23.4.2  AJAX框架中SlideShowExtender控件
播放照片 708
23.4.3  无刷新动态获取数据库中图片地址 709
23.4.4  DataList控件实现分页 710
23.4.5  DataList控件事件冒泡浏览个人相册 712
23.5  主要功能模块设计 714
23.5.1  校友录数码相册网主页设计 714
23.5.2  缩略图显示个人数码相册 714
23.5.3  分页显示数码相册缩略图 716
23.5.4  校友录数码相册网用户登录 718
23.5.5  浏览电子数码相册页设计 719
23.6  课堂小结 722
特别提醒：
亲爱的读者朋友，由于近期纸张价格和印制成本大幅上涨，为不增加读者朋友的负担，又不减少书的内容，本书以下章节内容不得不放在配书光盘中，由此给您带来了不便，在此深表歉意。
第24堂课  仿百度知道之明日知道 723
视频讲解：83分钟
（本章内容在配书光盘中）
24.1  明日知道网站概述 724
24.1.1  开发背景 724
24.1.2  需求分析 724
24.1.3  系统目标 724
24.1.4  系统功能结构图 724
24.1.5  文件夹组织结构 725
24.1.6  系统预览 725
24.2  数据库设计 726
24.2.1  数据表概要说明 726
24.2.2  数据模型图 727
24.2.3  主要数据表的结构 728
24.3  关键技术详解 729
24.3.1  LINQ技术简介 729
24.3.2  LINQ to Object技术应用 729
24.3.3  LINQ to SQL技术应用 731
24.3.4  JavaScript和C#之间的相互调用与
访问 733
24.3.5  页面传值几种方式的汇总 734
24.3.6  页输出缓存 735
24.3.7  应用程序缓存 736
24.4  提问模块 737
24.4.1  模块功能展示 737
24.4.2  模块设计思路 738
24.4.3  模块功能实现 739
24.5  回复模块 741
24.5.1  模块功能展示 741
24.5.2  模块设计思路 741
24.5.3  模块功能实现 742
24.6  设置最佳答案模块 746
24.6.1  模块功能展示 746
24.6.2  模块设计思路 747
24.6.3  模块功能实现 748
24.7  关闭问题模块 749
24.7.1  模块功能展示 749
24.7.2  模块设计思路 750
24.7.3  模块功能实现 751
24.8  搜索问题模块 752
24.8.1  模块功能展示 752
24.8.2  模块设计思路 753
24.8.3  模块功能实现 754
24.9  课堂小结 756