标题：新手学ASP.NET3.5网络开发
本书特色
详细介绍了网页开发的必备知识和开发环境的搭建，降低了入门门槛
详细剖析ASP.NET 3.5中的关键技术：ADO.NET、LINQ和数据控件等
完美演绎ASP.NET的网站开发技术：母版页、主题皮肤、站点导航、AJAX等
提供综合案例，详细分析网站三层结构的各个构造步骤
内 容 简 介
本书是ASP.NET 3.5的技术入门书籍，体系完整，内容充实，以实例贯穿全书，全书包括入门基础、控件开发、数据库和文件操作、网站整体设计及课程实践5篇，全面介绍ASP.NET的开发基础，共23章，其中第1篇“从零开始”介绍了ASP.NET Web开发基础的概念、思想和技术，第2篇“控件开发”展现了ASP.NET 3.5强大的服务器控件，第3篇“数据库操作”介绍了SQL Server 2005数据库的操作和最新的LINQ技术，同时也介绍了各种文件的操作。第4篇“网站设计”则着重讨论了母版页、成员管理等网站设计中的必要技术。最后一篇先简要介绍了三层开发的必要性，然后通过两个实例，演示了三层技术在Web开发中的应用。全书每一个知识点都以实例展现，控制每个实例尽量短小，便于读者练习和掌握。
本书旨在向网站开发初学者介绍实用的ASP.NET 3.5开发技术，使初学者学完本书后即可动手开发，同时也可以作为中、高级Web开发人员有价值的参考书籍。如果读者具有ASP.NET的基础，本书也可以帮助您迅速掌握和使用.NET 3.0的新技术和新特征。
前言
这是一本全面讲解ASP.NET的书籍，本书遵循由浅入深、循序渐进的学习规律，充分考虑语言学习的特点，紧密结合开发示例，体系完整地介绍了在Visual Studio 2008平台下的ASP.NET 3.5开发技术。
本书从细节到整体，从内容编排到目录组织，都力图合理。在每一小节的内容编排上，首先给出清晰而易懂的基本概念，然后通过独立而有趣的示例使读者学以致用。在给出示例的时候，尽量避免冗长的代码和讲解，把每个独立的功能控制在25～30行的代码之内，使读者读代码更容易，能够轻松理解。
本书编写理念
1．完善的售后服务
配有学习论坛http://www.cnblogs.com/wangyan001/，读者可以在上面讨论技术，笔者会及时回答读者提问（24小时内回复），并提供各种技术文章，帮助你提高开发水平。
2．示例丰富，寓学于练
学习语言没有捷径，在掌握基础概念后，动手写出代码是最好的学习方式。基于此，本书在介绍每一具体的内容（如从零开始、控件开发、数据操作、网站设计等方面）时，在给出理论之后，都将紧跟示例，使读者具有通过实践，快速掌握写出代码的能力。在语言组织上，本书力求做到简单易懂、逻辑清晰。
3．代码典型，力求精炼
在示例安排上，代码力求典型、简洁，便于读者实现。多个示例前后呼应，具有相同的主题，使读者在学习后面的知识时自然而然地联想起前面的内容。另外，示例系统逻辑清晰，图表直观，代码注释详尽，使示例具有很好的操作性，每个示例尽量控制在25～30行之内，使读者便于学习和实现。
4．联系实际，强调设计
网站整体设计也是实际开发中重要的一部分，ASP.NET提供了一系列新的机制，使其更加简单，包括母版页机制、站点导航系统、样式和主题、Web部件，以及成员和角色管理等。这些常常是Web系统的必要元素，因此本书对这些内容单独成篇。对于具有ASP.NET 1.x开发基础的读者，相信会对这一部分产生兴趣。
5．课程实践，轻松上路
有经验的读者都明白，如果没有真正的综合示例做练习，读完一本书之后，到真正利用一种语言进行实际开发之前，往往还有很长的路要走。本书最后一部分通过综合示例的介绍，将大大缩短这一过程。另外，还通过对Personal Web Site的介绍，带领读者踏上Starter Kit的学习之路。
6．最新技术，最快学习
本书是一本基于Visual Studio 2008开发的ASP.NET 3.5技术书籍，介绍了最新的AJAX Web开发技术，以及最新的LINQ查询方式，并通过完整的案例演示了这些新技术。
本书是一本教科书和参考书的结合体，并附带有大量示例。本书旨在向网站开发初学者介绍实用的ASP.NET开发技术，使初学者学完本书后即可动手开发，同时也可以作为中、高级Web开发人员有价值的参考书籍，可方便地使用本书所附带的代码资源。如果读者具有ASP.NET 1.x的基础，本书也可以帮助您迅速掌握和使用ASP.NET 3.5的新特征。
编 者 
2008-10
光盘介绍
1．源文件的运行环境操作系统：Windows 2000及以上版本
开发环境：Microsoft Visual Studio 2008及其以上版本
数据库：SQL Server 2005及以上版本
Web服务器：IIS 5.1及以上版本
2．源文件运行方式直接把代码附加到打开的解决方案中，设置一个起始页面，可直接执行。
目 录
本书学习导航如下：
 要认识Web开发并掌握ASP.NET的开发语言的语法，请仔细阅读第0~6章。
 要了解ASP.NET网络开发的核心对象，请仔细阅读第3~6章。
 要学习Visual Studio 2008的ASP.NET 3.5应用，请仔细阅读第1~10章。
 要学习ADO.NET开发，请仔细阅读第11~14章。
 要掌握ASP.NET 3.5网络开发的一些高级技巧，请仔细阅读第15~22章。
 要学习ASP.NET 3.5开发大型案例，请仔细阅读第7~12章，第21~22章。
 要掌握ASP.NET在XML和AJAX上的特长，请仔细阅读第13章和第20章。
第1篇 从零开始 0 学习Web开发必备知识 22
0.1 基础概念 22
0.1.1 什么是网页 22
0.1.2 网页开发技术 22
0.1.3 Web开发相关技术 24
0.2 搭建开发环境 24
0.2.1 安装Visual Studio 2008 24
0.2.2 Visual Studio 2008 IDE简介 26
0.2.3 实现第一个ASP.NET程序 27
0.3 IIS 7 Web服务配置 28
0.3.1 安装IIS 7 28
0.3.2 配置 IIS 7支持的.NET版本 29
0.3.3 浏览第一个ASP.NET程序 31
0.4 C# 3.0语言基础 32
0.4.1 C#简介 32
0.4.2 变量和常量 32
0.4.3 运算符 33
0.4.4 流程控制 35
0.4.5 隐性局部变量 37
0.4.6 Lambda表达式 37
0.4.7 LINQ集成查询概述 38
0.5 编码规范 39
0.5.1 好的编码结构 39
0.5.2 好的注释风格 40
0.5.3 好的命名规范 41
0.5.4 避免文件过大 41
承上启下 42
 1 走进ASP.NET 3.5 44
1.1 ASP.NET 3.5概述 44
1.1.1 ASP.NET 3.5——动态页面开发利器 44
1.1.2 创建网站 45
1.1.3 设计网站 46
1.1.4 网站的前台和后台 46
1.2 ASP.NET 3.5动态网页剖析 48
1.2.1 前台客户端的事件处理 48
1.2.2 后台服务器端的事件处理 49
1.2.3 网站处理网页的顺序和原理 50
承上启下 51
 2 C#面向对象的特性 52
2.1 面向对象编程概述 52
2.1.1 什么是类和对象 52
2.1.2 用C#如何创建类 53
2.1.3 用C#如何创建对象 54
2.1.4 什么是面向对象编程 54
2.2 面向对象的技术 55
2.2.1 接口 55
2.2.2 用C#如何创建接口 55
2.2.3 继承 56
2.2.4 用C#如何实现继承 56
2.2.5 多态 57
2.2.6 用C#如何实现多态 58
2.3 面向对象开发的简单实例 58
2.3.1 面向对象功能设计 58
2.3.2 面向对象的类设计 58
2.3.3 面向对象的应用 59
承上启下 61
 3 ASP.NET核心对象 62
3.1 Page类 62
3.1.1 Page类概述 62
3.1.2 探索页面生命周期 63
3.2 ASP.NET核心对象 65
3.2.1 利用Response输出信息 66
3.2.2 利用Request获取页面输入 67
3.2.3 利用Server获取服务器信息 69
3.3 共享数据 71
3.3.1 利用Application共享数据 72
3.3.2 使用Global.asax文件 73
3.3.3 利用Session共享数据 74
3.3.4 利用Session验证用户 76
承上启下 78
 4 字符串 79
4.1 字符串String 79
4.1.1 比较字符串 80
4.1.2 判定首尾字符串 82
4.1.3 判断是否包含子串 82
4.1.4 定位字符和子串 82
4.1.5 格式化字符串 84
4.1.6 连接字符串 84
4.1.7 拆分字符串 85
4.1.8 插入字符串 86
4.1.9 填充字符串 86
4.1.10 删除字符串 86
4.1.11 复制字符串 87
4.1.12 替换字符串 88
4.1.13 更改大小写 88
4.2 动态串StringBuilder 88
4.2.1 比较String 89
4.2.2 设置容量 89
4.2.3 追加字符串 90
4.2.4 插入字符串 90
4.2.5 删除字符串 91
4.2.6 替换字符串 91
4.3 正则表达式Regex 91
4.3.1 正则表达式简介 92
4.3.2 构造正则表达式 92
4.3.3 使用Regex类 94
4.4 字符编码 95
4.4.1 字符编码概述 95
4.4.2 字符编码类 96
承上启下 98
 5 数组和集合 100
5.1 数组 100
5.1.1 什么是数组 100
5.1.2 创建数组 102
5.1.3 数组基类Array 103
5.1.4 访问数组元素 104
5.1.5 转化元素类型 105
5.1.6 遍历数组元素 106
5.1.7 排序数组元素 107
5.1.8 查找数组元素 109
5.1.9 反转数组元素 110
5.1.10 复制数组 111
5.2 集合 112
5.2.1 什么是集合 112
5.2.2 列表类ArrayList 113
5.2.3 创建列表 114
5.2.4 遍历列表 114
5.2.5 添加元素 115
5.2.6 插入元素 116
5.2.7 删除元素 117
5.2.8 简单排序 118
5.2.9 复杂排序 118
5.2.10 查找元素 119
5.3 队列 120
5.3.1 什么是队列 120
5.3.2 队列类Queue 120
5.3.3 创建队列 120
5.3.4 元素入队 121
5.3.5 元素出队 122
5.4 堆栈 122
5.4.1 什么是堆栈 122
5.4.2 堆栈类Stack 123
5.4.3 创建堆栈 123
5.4.4 元素入栈 123
5.4.5 元素出栈 124
承上启下 125
 6 调试和异常处理 126
6.1 程序调试技术 126
6.1.1 调试语法错误 126
6.1.2 调试逻辑错误 127
6.2 异常处理机制 129
6.2.1 异常类Exception 129
6.2.2 使用try-catch处理异常 130
6.2.3 异常处理的原则 131
承上启下 132
第2篇 控件开发 7 标准服务器控件 134
7.1 WebControls概述 134
7.1.1 什么是服务器控件 134
7.1.2 WebControls空间 135
7.2 输入控件 137
7.2.1 按钮Button 137
7.2.2 文本框TextBox 141
7.2.3 复选框CheckBox 143
7.2.4 单选按钮RadioButton 145
7.2.5 超级链接HyperLink 147
7.2.6 链接按钮LinkButton 148
7.2.7 图像Image 150
7.2.8 图像按钮ImageButton 151
7.2.9 图像热区ImageMap 152
7.2.10 项列表BulletedList 154
7.3 列表控件 155
7.3.1 下拉框DropDownList 156
7.3.2 列表框ListBox 158
7.3.3 复选框列表CheckBoxList 159
7.3.4 单选按钮列表RadioButtonList 162
7.4 容器控件 163
7.4.1 面板Panel 163
7.4.2 表格Table 165
7.5 其他控件 169
7.5.1 广告栏AdRotator 170
7.5.2 日历Calendar 171
承上启下 174
 8 HTML服务器控件 175
8.1 HtmlControls概述 175
8.1.1 比较标准控件 175
8.1.2 HtmlControls空间 176
8.2 输入控件HtmlInput 177
8.2.1 按钮HtmlInputButton 177
8.2.2 单行文本框HtmlInputText 180
8.2.3 多行文本框HtmlTextArea 182
8.2.4 隐藏文本框HtmlInputHidden 182
8.2.5 文件框HtmlInputFile 184
8.2.6 复选框HtmlInputCheckBox 186
8.2.7 单选框HtmlInputRadioButton 188
8.3 容器控件HtmlContainer 189
8.3.1 表格HtmlTable 190
8.3.2 列表框/下拉框控件HtmlSelect 192
8.4 图像控件HtmlImage 195
承上启下 197
 9 数据验证控件 199
9.1 概述 199
9.2 验证控件 200
9.2.1 必填验证控件RequiredFieldValidator 200
9.2.2 比较验证控件CompareValidator 202
9.2.3 范围验证控件RangeValidator 205
9.2.4 正则验证控件RegularExpressionValidator 206
9.2.5 自定义验证控件CustomValidator 208
9.2.6 验证摘要控件ValidationSummary 211
9.3 注册页面示例 213
承上启下 216
 10 用户控件 217
10.1 概述 217
10.1.1 什么是用户控件 217
10.1.2 何时使用用户控件 217
10.2 使用用户控件 218
10.2.1 创建用户控件 218
10.2.2 添加用户控件 219
10.2.3 定义用户控件属性 220
10.2.4 定义用户控件事件 221
10.2.5 比较Web页面 221
承上启下 222
第3篇 数据库操作 11 ADO.NET 224
11.1 概述 224
11.1.1 ADO.NET的功能 224
11.1.2 ADO.NET基本结构 225
11.1.3 System.Data空间 225
11.2 连接数据库 226
11.2.1 SqlConnection类 226
11.2.2 连接数据库 227
11.2.3 使用web.config配置连接 228
11.2.4 断开数据库 229
11.3 操作数据库 230
11.3.1 SqlCommand类 230
11.3.2 查询数据 231
11.3.3 SqlDataReader类 232
11.3.4 操作数据 233
11.4 内存数据对象 234
11.4.1 SqlDataAdapter类 235
11.4.2 DataSet类 237
11.4.3 DataTable类 239
11.5 SQL基础 243
11.5.1 SQL基础 243
11.5.2 创建数据库CREATE DATABASE 244
11.5.3 删除数据库DROP DATABASE 244
11.5.4 创建表CREATE TABLE 245
11.5.5 修改表UPDATE TABLE 246
11.5.6 删除表DROP TABLE 248
11.5.7 插入数据INSERT 248
11.5.8 修改数据UPDATE 249
11.5.9 删除数据DELETE 249
11.5.10 SQL简单查询 249
11.5.11 使用GROUP BY对结果分组 252
11.5.12 使用DISTINCT对结果去重 253
11.5.13 使用ORDER BY对结果排序 253
11.5.14 使用函数和表达式 254
11.5.15 使用运算符 254
11.6 LINQ基础 254
11.6.1 LINQ查询数据库原理 254
11.6.2 在项目中添加数据库映射类 255
11.6.3 使用LINQ操作数据库——查询、增、删、改 256
承上启下 257
 12 数据控件 258
12.1 概述 258
12.2 网格视图GridView 259
12.2.1 认识GridView 259
12.2.2 GridView中的列类型 260
12.2.3 自动生成数据列 261
12.2.4 使用BoundField列显示数据 264
12.2.5 使用CommandField列编辑数据 266
12.2.6 使用CommandField列删除数据 268
12.2.7 使用CommandField列选择数据 270
12.2.8 使用HyperLinkField列链接数据 271
12.2.9 使用ButtonField列灵活操作数据 273
12.2.10 分页浏览数据 275
12.3 列表控件 276
12.3.1 把DataSet绑定到DropDownList 277
12.3.2 把DataReader绑定到ListBox 279
12.3.3 把DataTable绑定到CheckBoxList 280
12.3.4 把HashTable绑定到RadioButtonList 282
12.4 使用LinqDataSource数据源控件 284
12.4.1 使用SqlDataSource生成支持增删改的GridView 284
12.4.2 使用LinqDataSource生成支持增删改的GridView 285
12.5 DataPager控件和ListView控件 287
12.5.1 ListView绑定数据 287
12.5.2 ListView结合DataPager控件实现数据分页 288
承上启下 289
 13 XML数据操作 290
13.1 .NET框架中的XML 290
13.1.1 什么是XML 290
13.1.2 XML文档对象模型DOM 291
13.1.3 System.Xml命名空间 292
13.2 读取XML 292
13.2.1 使用XmlDocument读取XML 293
13.2.2 使用XmlReader读取XML 293
13.2.3 使用XmlNode读取节点 297
13.3 查询XML 298
13.3.1 基本XPath表达式 299
13.3.2 限定查询范围 299
13.3.3 使用函数设置查询条件 300
13.3.4 使用运算符设置查询条件 300
13.3.5 使用通配符模糊匹配 301
13.3.6 综合示例 301
13.4 修改XML 302
13.4.1 创建新DOM节点 302
13.4.2 创建DOM节点属性 303
13.4.3 修改DOM节点 304
13.4.4 删除DOM节点 305
13.4.5 保存DOM树 306
13.5 与DataSet交互 307
13.5.1 使用DataSet加载XML数据 307
13.5.2 使用XmlDataDocument加载关系数据 309
承上启下 310
 14 文件操作 311
14.1 操作文件 311
14.1.1 创建文件 312
14.1.2 复制文件 312
14.1.3 重命名文件 312
14.1.4 删除文件 313
14.2 读写文件 313
14.2.1 使用StreamWriter写入文件 313
14.2.2 使用StreamReader读取文件 314
承上启下 315
第4篇 网站设计 15 母版页 317
15.1 静态母版页 317
15.1.1 创建母版页 318
15.1.2 向母版页添加控件 319
15.1.3 使用母版创建内容页 320
15.1.4 挖掘母版页的机制 321
15.2 与母版页交互 322
15.2.1 母版页和内容页的生命周期 322
15.2.2 母版页内部的控件事件 323
15.2.3 在母版页中访问内容页控件 324
15.2.4 在内容页中访问母版页控件 325
15.3 动态选择母版页 326
承上启下 328
 16 站点导航系统 330
16.1 ASP.NET导航系统概述 330
16.1.1 导航概述 331
16.1.2 从网站到导航控件 331
16.2 站点地图SiteMap 332
16.2.1 SiteMap概述 332
16.2.2 用SiteMapNode构造SiteMap 333
16.2.3 用SiteMapProvider提供数据 333
16.2.4 用默认SiteMapProvider提供数据 334
16.2.5 用个性配置SiteMapProvider提供数据 337
16.3 导航控件 339
16.3.1 使用SiteMapPath导航 339
16.3.2 使用TreeView导航 341
16.3.3 使用Menu导航 343
16.4 可编程导航 345
16.4.1 为网站配置多个SiteMapProvider 345
16.4.2 用XML创建TreeView 348
16.4.3 用XML创建Menu 350
承上启下 351
 17 样式和主题 352
17.1 样式表CSS 352
17.1.1 什么是CSS 352
17.1.2 指定HTML元素的样式 353
17.1.3 指定HTML服务器控件样式 355
17.1.4 指定标准服务器控件样式 355
17.1.5 CSS的基本语法 357
17.1.6 利用VS2008创建样式表 360
17.2 主题和外观 361
17.2.1 什么是主题和外观 361
17.2.2 建立主题和外观 362
17.2.3 为所有页面指定主题 364
17.2.4 为特定页面指定主题 364
17.2.5 为特定控件指定主题 365
17.2.6 动态指定主题和外观 365
承上启下 366
 18 Web Part 367
18.1 概述 367
18.1.1 先睹为快 367
18.1.2 认识Web Part 368
18.1.3 页面管家WebPartManager 369
18.1.4 用户数据库配置 370
18.2 个性化设置页面 370
18.2.1 使用WebPartZone划分页面 371
18.2.2 个性化设置页面布局 373
18.2.3 向页面添加Web Part控件 375
18.2.4 编辑Web Part控件的属性 378
18.3 Web Part之间的通信 380
承上启下 382
 19 成员和角色管理 384
19.1 成员服务 384
19.1.1 成员服务概述 384
19.1.2 Membership类 385
19.1.3 创建新用户 386
19.1.4 验证用户身份 391
19.1.5 MembershipUser类 392
19.1.6 获取用户信息 393
19.2 成员管理控件 394
19.2.1 成员管理控件概述 394
19.2.2 使用Login控件登录用户 395
19.2.3 使用CreateUserWizard创建新用户 396
19.2.4 使用LoginName得到用户名 398
19.2.5 使用LoginStatus显示登录状态 398
19.2.6 使用ChangePassword修改密码 399
19.2.7 使用PasswordRecovery找回密码 399
19.3 角色管理 400
19.3.1 角色管理概述 401
19.3.2 Roles类 401
19.3.3 配置角色管理 402
19.3.4 使用管理工具管理角色 403
19.3.5 使用角色控制页面行为 405
承上启下 408
 20 AJAX程序设计 409
20.1 认识AJAX组件 409
20.2 脚本控制器ScriptManager 409
20.2.1 脚本控制器ScriptManager的结构 410
20.2.2 使用ScriptManager调用脚本文件 410
20.2.3 ScriptManager调用Web服务 411
20.2.4 动态注册ScriptManager 413
20.3 代理控制器ScriptManagerProxy 414
20.3.1 用ScriptManagerProxy代理ScriptManager 414
20.3.2 在母版页中应用ScriptManagerProxy 414
20.4 局部更新控件UpdatePanel 416
20.4.1 UpdatePanel控件的结构 416
20.4.2 局部更新的简单示例 417
20.4.3 UpdatePanel的属性UpdateMode和ChildrenAsTriggers 418
20.4.4 UpdatePanel的触发器Triggers 419
20.4.5 动态更新UpdatePanel的内容 420
20.5 更新进度提示控件UpdateProgress 421
20.5.1 认识UpdateProgress 421
20.5.2 UpdateProgress简单实例——实现代码更新提示 422
20.6 定时控件Timer 423
20.6.1 认识Timer 423
20.6.2 使用Timer控件定时更新实例 423
20.6.3 使用一个Timer定时更新多个UpdatePanel实例 424
承上启下 425
第5篇 实例剖析 21 Web系统的多层结构 427
21.1 Web系统的三层结构 427
21.2 多层结构之NorthWind 428
21.2.1 整体结构 428
21.2.2 数据访问层DAL 428
21.2.3 业务逻辑层BLL 431
21.2.4 用户表示层UI 432
承上启下 433
 22 三层结构的新闻管理系统 434
22.1 新闻管理系统功能预览 434
22.2 数据库设计 435
22.2.1 数据库设计注意事项 435
22.2.2 数据库中各表结构 436
22.2.3 创建网站并映射表实体 438
22.3 网站整体布局设计 439
22.3.1 母版页设计 439
22.3.2 网站三层结构设计 440
22.4 网站会员管理功能 440
22.4.1 会员注册功能 440
22.4.2 会员登录功能 442
22.4.3 会员资料修改功能 444
22.4.4 在线会员资料统计功能 447
22.5 新闻分类功能 448
22.5.1 添加新闻分类 448
22.5.2 修改新闻分类 450
22.5.3 删除新闻分类 452
22.6 新闻管理主要功能 454
22.6.1 添加新闻 454
22.6.2 编辑新闻 457
22.6.3 浏览和删除新闻 459
22.7 公告管理功能 462
22.7.1 添加公告 462
22.7.2 编辑公告 463
22.7.3 浏览和删除公告 466
22.8 友情链接管理功能 468
22.8.1 添加友情链接 468
22.8.2 浏览和删除友情链接 469
22.9 评论管理功能 471
22.10 会员浏览网站主要功能 473
22.10.1 浏览新闻功能 473
22.10.2 浏览公告功能 475
22.10.3 浏览图片新闻 477
22.10.4 其他普通用户功能 478
22.11 一些网站操作技巧 478
22.11.1 上传文件 479
22.11.2 创建并引用用户控件 479
22.12 网站的一些主要截图 480
承上启下 481
 23 简易论坛系统 482
23.1 AJAX控件包 482
23.2 论坛的功能简介 483
23.3 论坛中的AJAX技术应用概况 484
23.4 论坛的数据库设计 484
23.4.1 配置存取ASP.NET服务的数据库 484
23.4.2 创建论坛中的数据表 486
23.4.3 论坛中数据表之间的关系 486
23.5 论坛的数据库设计 487
23.5.1 配置存取ASP.NET服务的数据库 487
23.5.2 配置存取ASP.NET服务的数据库 488
23.6 发表留言主题的功能 489
23.6.1 设计发表留言功能的布局 490
23.6.2 实现发表留言功能的主要方法 492
23.7 浏览留言主题的功能 494
23.8 留言回复的功能 496
23.8.1 显示所有的回复 496
23.8.2 添加回复 498
23.8.3 修改回复模板支持AJAX 501
23.8.4 为删除按钮添加确认提示 503
23.9 论坛短消息功能 504
23.9.1 发送短消息 504
23.9.2 接收短消息 506
23.9.3 AJAX显示短消息提示 508
23.10 用户自定义界面风格功能 510
23.10.1 启用ASP.NET的Profile配置 510
23.10.2 使用AJAX ProfileService实现个性化界面定制 511
总结 514