目 录
基础入门篇
第1章 动态网页程序与.NET框架
简介 1
1.1 HTML、W3C与浏览器 1
1.2 动态网页语言——以ASP与PHP
为例 3
1.2.1 前端(Client)与后端(Server)的
差别 3
1.2.2 ASP与ASP.NET 5
1.2.3 关于PHP 5
1.2.4 网页程序的开发工具 6
1.2.5 Web服务器的市场占有率 7
1.3 .NET框架 7
1.4 CLR的功能 8
1.5 .NET Framework类库 9
1.6 客户端(Client)应用程序开发 10
1.7 服务器(Server)应用程序开发 11
1.8 ASP.NET概述 12
1.8.1 网页与控件架构 12
1.8.2 ASP.NET编译器 13
1.9 .NET Framework系统需求 13
1.10 .NET Framework 3.5版的新功能 14
1.10.1 ASP.NET的增强功能 14
1.10.2 Ajax开发 15
1.10.3 Web Service和应用程序
服务 15
1.11 .NET 3.5和VS2008新增的控件 15
1.11.1 ListView数据控件 16
1.11.2 DataPager控件 16
1.11.3 LinqDataSource控件 16
1.11.4 ASP.NET合并工具 17
第2章 VB.NET基本语法与
Visual Studio工具的介绍 18
2.1 编写第一个ASP.NET程序 18
2.2 利用Visual Studio来编写程序 22
2.2.1 HTML设计页面——扩展名
为aspx 23
2.2.2 后置程序代码——扩展名
为aspx.vb或aspx.cs 24
2.2.3 使用智能提示 27
2.2.4 插入代码段 28
2.3 Response对象 29
2.3.1 用Response.Write()将数据
呈现在页面上 29
2.3.2 用Response.Redirect()把网页
重定向 30
2.3.3 用Response.End使程序终止 30
2.3.4 Response对象的其他方法 31
2.4 IF-Then条件语句 32
2.4.1 简单地判断大小 32
2.4.2 由用户自行输入数值并判断
大小 33
2.4.3 嵌套的IF-Then条件语句 35
2.4.4 IF-Then语句的局限性 36
2.5 Select Case语句 37
2.6 For-Next计数循环 38
2.6.1 计算1+2+3+…+100 38
2.6.2 使用“&”符号连续输出 39
2.7 While - End While条件循环 40
2.8 微软建议的命名惯例 41
2.9 Page类型与常用的事件 42
2.10 安装与测试IIS(Web服务器环境) 43
第3章 Web服务器控件 46
3.1 TextBox输入文本框 47
3.2 ASP.NET后置程序代码的编写
与执行 48
3.3 Button按钮控件的三种不同形式 50
3.3.1 Button控件的三种变化 53
3.3.2 避免重复单击“提交”按钮 55
3.4 Button控件的CommandName
与 CommandArgument 57
3.5 使用Label控件 61
3.6 HyperLink超级链接 65
3.7 DropDownList下拉列表框 68
3.7.1 AutoPostBack属性 70
3.7.2 下拉列表框的add()方法 71
3.8 ListBox“单选/复选”式的列表框 73
3.8.1 数据绑定与SqlDataSource
数据源控件 74
3.8.2 如何得知用户选中了ListBox
的哪几个选项 81
3.9 CheckBox与CheckBoxList(复选) 83
3.10 RadioButton与RadioButtonList
(单选) 88
3.11 日历控件 90
3.11.1 SelectedDate属性 91
3.11.2 SelectionMode属性 92
3.11.3 使用SelectedDates()数组 95
3.11.4 不点选日期,就出现警告
对话框 95
3.12 PlaceHolder(预留空间以便动态
新增控件) 96
3.13 AdRotator广告轮播 98
3.13.1 以XML文件作为广告
清单 98
3.13.2 通过后置程序代码来控制
广告清单 100
3.13.3 通过数据库来控制广告
清单 100
3.14 本章小结 101
第4章 验证控件 103
4.1 RequireFieldValidator验证数据
是否空白 104
4.2 CompareValidator——字段比较 107
4.2.1 两个字段相互比较 107
4.2.2 与基准值进行比较 109
4.3 RangeValidator——验证数值的
有效范围 110
4.4 RegularExpressionValidator——
正则表达式验证 111
4.5 CustomValidator——自己写程序
来做验证 114
4.6 ValidationSummary——总体验证 117
4.7 本章小结 118
第5章 基本SQL语法与
SQL Server 119
5.1 使用数据库及加载范例 119
5.2 新增一个数据表(Table)并设计字段 124
5.3 浏览Create Table的SQL语法 126
5.4 打开和使用表 128
5.5 SQL语法基础入门 129
5.6 AND、OR和NOT的应用 131
5.7 LIKE表达式的应用 133
5.8 关于Select的其他用法 136
5.9 新增记录(Insert Into) 136
5.10 删除记录(Delete) 137
5.11 修改记录(Update) 137
5.12 本章小结 137
实作练习篇
第6章 ADO.NET简介与数据的新增
和修改 138
6.1 程序与数据库互动的四大步骤 138
6.1.1 ASP.NET与ADO.NET
的简单程序 138
6.1.2 JSP、PHP也用四大步骤 139
6.1.3 数据源控件(DataSource) 141
6.1.4 DataReader和DataSet
(数据集) 141
6.2 DetailsView控件,数据新增、修改
与展示 142
6.2.1 第一步:连接数据库或其他
数据源 143
6.2.2 第二步:执行SQL指令 145
6.2.3 第三步:自由发挥 146
6.2.4 执行程序 147
6.2.5 页面修改、自动格式化 148
6.2.6 编辑字段(自定义标题、修改
字段细节) 149
6.2.7 分页功能,AllowPaging
属性 151
6.2.8 命令字段(CommandField),
编辑、更新和删除 152
6.2.9 DetailsView的默认模式
(DefaultMode) 153
6.3 本章小结 154
第7章 初探GridView——ASP.NET
功能最强大的控件 155
7.1 GridView的第一次接触 156
7.2 跟着图片和说明一步步做 157
7.3 使用数据源(DataSource)连接
数据库 158
7.4 使用数据源(DataSource)以SQL
指令访问数据 161
7.5 自动套用格式修改外观与配色 165
7.6 自定义GridView的“标题”字段的
文本(Header Text) 166
7.7 自定义文本的数据格式
(DataFormatString) 167
7.8 GridView的“选择(Select)”按钮
与“光棒效果” 170
7.9 “分页”与“排序”功能 173
7.10 编辑数据(命令字段,
CommandField) 176
7.11 让GridView固定位置 180
7.12 范例的完整程序代码 181
7.13 GridView数据字段类型 183
7.14 GridView自动产生命令按钮的
其他方法 184
7.14.1 设计时不产生命令字段的
HTML标记(执行期才
出现) 184
7.14.2 HTML源码中产生命令字段
的<asp:CommandField>
标记 185
第8章 GridView自定义模板 187
8.1 编辑模板 188
8.1.1 第一种方式——通过GridView
智能标签 188
8.1.2 第二种方式——通过GridView
的快捷菜单 190
8.2 GridView自定义模板的成果 191
8.3 隔行换色(AlternatingRowStyle) 194
8.4 删除数据之前出现警告窗口
(JavaScript) 194
8.5 删除数据之前出现警告窗口(后置
程序代码) 197
8.6 命令字段(CommandField)的运行
原理 202
8.7 GridView的模板字段
与DataList/FormView 205
8.8 在VS2005/2008中也能使用旧版的
DataGrid 208
第9章 GridView制作首页的
Master-Detail功能 210
9.1 案例分析(I)——两个程序,各自展示
Master-Detail 211
9.1.1 Master功能的网页
(GridView1) 211
9.1.2 GridView的超级链接字段
(HyperLinkField) 213
9.1.3 Master功能——商务网站的
做法 216
9.1.4 Detail功能(GridView2,另外
一支程序) 219
9.1.5 范例与完整程序代码 221
9.2 案例分析(II)——同一个程序,两个
GridView 222
9.2.1 Master功能(GridView1) 223
9.2.2 Detail功能(GridView2) 224
9.2.3 Detail功能里最重要的设置
界面 225
9.2.4 Visual Studio产生程序,执行
Master-Detail的原理 227
9.2.5 选择(Select)按钮与分页/排序
CallBack的矛盾 228
9.2.6 范例与完整程序代码 229
9.3 案例分析(III)——同一程序中
GridView+DetailsView 230
9.3.1 与“基准值”来比较 230
9.3.2 DetailsView控件的模板
(TemplateField) 233
9.3.3 修改title字段的模板 234
9.3.4 修改summary字段的模板 235
9.3.5 修改article字段的模板 236
9.3.6 DetailsView的删除、编辑
和新建功能 239
9.3.7 范例的完整程序代码 241
9.4 案例分析(IV)——同一程序中
DropDownList+FormView 243
9.4.1 Master功能交给DropDownList
控件 245
9.4.2 范例的程序代码(Master功能),
DropDownList控件 246
9.4.3 Detail功能交给FormView
控件 247
9.4.4 范例的程序代码(Detail功能),
FormView控件 251
9.4.5 数据绑定控件的深入探讨 255
9.5 本章重点回顾 257
9.5.1 SqlDataSource的“WHERE”
子句按钮 257
9.5.2 GridView/DetailsView/FormView
三者的差异 258
第10章 GridView的高级功能(一) 261
10.1 某一行数据的主键 261
10.2 如何触发GridView的选择/编辑
事件 263
10.2.1 进入GridView的编辑
模式 264
10.2.2 取消GridView的编辑
模式 266
10.2.3 GridView的选择模式
(光棒效果) 266
10.2.4 离开GridView的选择模式
(取消光棒效果) 267
10.3 手动编写GridView分页 269
10.4 手动编写GridView的各种功能
(DataSet + DataAdapter) 271
10.4.1 HTML页面设置 271
10.4.2 后置程序代码——自己写
DBInit()与Page_Load() 273
10.4.3 后置程序代码——GridView
更新(RowUpdating)事件 274
10.4.4 后置程序代码——GridView的
分页、编辑、取消 278
10.4.5 后置程序代码——GridView的
删除行(RowDeleting)事件 279
10.5 为何进入GridView各种模式后需
重新数据绑定 280
第11章 GridView的高级功能(二) 282
11.1 从GridView导出Excel文件 282
11.2 手动编写GridView的“新增”
功能 285
11.2.1 使用EmptyData模板 286
11.2.2 两段简单的后置程序代码 290
11.3 用户控件(User Control) 291
11.3.1 在HTML源代码中加入用户
控件 292
11.3.2 在后置程序代码中加入用户
控件 295
11.4 在GridView中包含另一个
小GridView 296
11.4.1 事前准备与HTML界面 298
11.4.2 后置程序代码(有Bug) 300
11.4.3 后置程序代码(正确版) 303
11.5 GridView自定义表头与合并相同
数据行 305
11.5.1 合并“表头(Header)”行 307
11.5.2 表头“字段”的合并 310
11.5.3 GridView的多层表头 311
11.5.4 纵向合并 312
11.5.5 纵向合并与隔行换色 314
11.6 本章小结 317
第12章 ListView与Repeater控件——
随心所欲的模板之王 318
12.1 ListView + SqlDataSource 320
12.2 ListView的11种模板类型 323
12.3 ItemTemplate/AlternatingItemTemplate
比较 324
12.3.1 修改ItemTemplate 324
12.3.2 令人意想不到的结果 326
12.3.3 AlternatingItem——另一种
呈现数据的模板 327
12.4 光棒效果与“选择”按钮 327
12.5 Master-Detail功能 329
12.5.1 Master界面(首页) 330
12.5.2 Detail界面(展示一笔数据的
细项) 331
12.5.3 Button按钮触发ItemCommand
事件 333
12.6 编辑数据时固定位置
(MaintainScrollPositionOnPostback) 334
12.7 ListView控件支持的事件 334
12.8 Repeater——做报表或是展示大量
数据 335
12.8.1 Repeater的HTML界面
设计 335
12.8.2 简单的HTML码与<Table>
标记 338
12.8.3 HTML表格中的<TR>与
<TD>标记 340
12.8.4 案例分析(I)——动手修改
Repeater模板 340
12.8.5 案例分析(II)——隔行换色
AlternatingItem模板 343
12.8.6 案例分析(III)——实现
Master-Detail功能 344
核心概念篇
第13章 ADO.NET访问数据源 347
13.1 .NET Framework套件的下载
与安装 348
13.2 ADO.NET简介与架构 349
13.3 NET的数据提供者(Data Provider) 350
13.3.1 XML和ADO.NET的紧密
关联 352
13.3.2 ADO.NET的设计目标 352
13.4 Connection对象 353
13.4.1 OLE DB数据库 354
13.4.2 SQL Server数据库 356
13.4.3 ODBC数据库 356
13.4.4 Oracle数据库 356
13.4.5 在HTML页面中声明命名
空间 356
13.4.6 在后置程序代码中声明
命名空间 357
13.4.7 Connection的属性 359
13.5 Command对象 360
13.6 DataReader对象 363
13.7 DataSet(数据集)对象 365
13.8 DataView对象 367
13.9 DataAdapter(数据适配器)对象 368
13.10 命名空间(NameSpace) 371
13.11 数据源(DataSource)控件 372
13.11.1 SqlDataSource数据源
控件 373
13.11.2 简单的SqlDataSource
(HTML源代码) 374
13.11.3 配合“数据绑定控件” 375
13.11.4 SqlDataSource的功能 378
13.12 ADO.NET 3.5新增的LINQ 378
13.12.1 LINQ to ADO.NET 379
13.12.2 简单的LINQ范例
与语法 380
13.13 ADO.NET与旧版ADO的比较 381
第14章 动手写程序实现ADO.NET 383
14.1 DataReader 384
14.1.1 从HTML码中连接数据库 385
14.1.2 使用Try ... Catch ... Finally
区块 386
14.1.3 Snippet——辅助编写程序
代码片段 390
14.1.4 使用Using ... End Using
区块 391
14.1.5 嵌套Using ... End Using 393
14.1.6 SQL指令的存储过程
(Stored Procedure) 394
14.1.7 返回多个结果——NextResult
方法 395
14.1.8 多重结果作用集(MARS) 396
14.2 DataSource数据源控件 400
14.2.1 DataSourceMode设置为
DataReader 404
14.2.2 DataSourceMode设置为
DataSet 405
14.3 DataSet+DataAdapter 406
14.3.1 使用Using ... End Using
区块 409
14.3.2 将DataSet转成XML
文件(I) 410
14.3.3 将DataSet转成XML
文件(II) 412
14.4 DataSet手写的分页程序 413
14.4.1 分页程序(基础版) 414
14.4.2 分页程序(高级版/每10页
做一区隔) 418
14.5 String与StringBuilder的针对性
和效率 422
14.5.1 String与StringBuilder之间
的差异 423
14.5.2 实测获得的速度提升数据 424
14.6 加密和解密Web.config配置 426
14.6.1 加密Web.config配置 426
14.6.2 解密Web.config配置 427
第15章 Page/Response/Request
类型 428
15.1 Page类型 428
15.1.1 单一文件(Inline Code)与后置
程序代码(Code Behind) 428
15.1.2 Page类型的公用事件与
ASP.NET网页的生命周期 430
15.1.3 Not Page.IsPostBack(网页是
否“第一次”被执行) 433
15.1.4 跨网页提交(Cross-Page
Posting) 434
15.1.5 通过Public属性跨网页
提交 436
15.1.6 Page.IsCrossPagePostBack
(避免直接进入目标网页) 438
15.2 Page类型的Server对象 439
15.3 Response类型 441
15.4 Request类型 442
15.4.1 HttpRequest属性 443
15.4.2 Browser属性(客户端的
浏览器支持的功能) 444
15.4.3 ServerVariables属性(服务器
端的环境变量) 445
第16章 状态管理 449
16.1 Application(HttpApplication类型) 449
16.1.1 Application简介 449
16.1.2 案例分析(I)——在整个网站内
共享变量 450
16.1.3 案例分析(II)——锁定后才可
修改Application 452
16.2 Session(HttpSessionState类型) 453
16.2.1 案例分析(I) 453
16.2.2 Session简介 456
16.2.3 HttpSessionState的属性 457
16.2.4 HttpSessionState的方法 459
16.2.5 案例分析(II)——检查用户
身份 459
16.2.6 案例分析(III)——会员登录、
后台管理 461
16.3 Global.asax配置文件 465
16.3.1 Application事件 467
16.3.2 Session事件 467
16.3.3 网站在线人数统计 468
16.4 案例分析——网络聊天室 469
16.4.1 基本设置与登录页面 469
16.4.2 聊天室的主程序 470
16.5 Cookie 473
16.5.1 Cookie简介 474
16.5.2 编写Cookie与设置
到期日 475
16.5.3 编写Cookie的子索引键 475
16.5.4 限制Cookie的范围 476
16.5.5 读取Cookie 477
16.5.6 修改与删除Cookie 479
16.5.7 判断浏览器是否接受
Cookie 480
16.5.8 Cookie和安全性 481
16.5.9 案例分析——会员登录、后台
管理区的控制(Cookie版) 483
16.6 ViewState视图状态 485
16.6.1 写入ViewState 486
16.6.2 读取ViewState与加密 487
应用技巧篇
第17章 数据流I/O与文件 488
17.1 System.IO命名空间 488
17.2 Stream写入和读取文件 490
17.2.1 StreamWriter——写入
文件 490
17.2.2 一次性写入文件 491
17.2.3 StreamReader——读取
文件 492
17.3 File类处理文件的静态方法 493
17.3.1 打开/复制/删除文件 494
17.3.2 FileInfo——获得文件名称
与容量大小信息 495
17.4 Binary——读取和写入二进制数据
到文件 496
17.5 FileStream类型、FileMode
和FileAccess 499
17.5.1 FileStream类型 499
17.5.2 FileMode与FileAccess 499
17.5.3 附加(Append)数据至文件
末端 500
17.6 案例分析(I)—访问计数器
(图片版) 500
17.7 案例分析(II)——程序执行中的Log
记录文件 501
17.7.1 自己编写Log记录文件 502
17.7.2 与其他程序共享Log文件的
记录功能 503
第18章 文件上传与FileUpload
控件 507
18.1 FileUpload控件 507
18.1.1 简单的文件上传 508
18.1.2 避免上传的文件名重复 510
18.2 FileUpload的属性 511
18.2.1 限制上传文件的大小
(PostedFile属性) 513
18.2.2 FileContent与Stream
对象 513
18.2.3 限制上传文件的扩展名 515
18.2.4 避免暴露Server上面的实际
路径 517
18.3 多个文件批量上传 517
18.3.1 以FileUpload做批量上传 518
18.3.2 通过HttpPostedFile上传
多个文件 520
18.4 本章小结 523
第19章 Web 2.0的王牌——Ajax
与Client CallBack 524
19.1 为什么要使用Ajax 524
19.2 VS2005中如何新增Ajax 526
19.3 案例分析(I)——Ajax版的Master-
Detail功能 527
19.3.1 新建一个Ajax网页(Web
Form) 527
19.3.2 Ajax的核心——UpdatePanel
控件 529
19.4 UpdatePanel的“内”与“外” 531
19.5 案例分析(II)——定时启动
UpdatePanel区块 532
19.6 案例分析(III)——嵌套UpdatePanel
区块 533
19.6.1 很简单但又很难一次性
做对的练习 533
19.6.2 UpdateMode与
ChildrenAsTriggers属性 534
19.6.3 最重要的Triggers属性 535
19.7 案例分析(IV)——Master-Detail
范例(改良版) 537
19.8 案例分析(V)——让您想像不到的
ListView 538
19.8.1 Item与AlternatingItem
模板的Ajax化 539
19.8.2 ListView的各种模板中的
控件ID不能同名 540
19.9 案例分析(VI)——聊天室+Ajax 543
19.9.1 基本设置与登录界面 543
19.9.2 聊天室的主程序(Ajax
重点) 544
19.10 不兼容UpdatePanel的控件 548
19.11 UpdatePanel与Ajax不是万能的 548
19.12 本章小结 549
第20章 Client CallBack 550
20.1 PostBack(回传)与CallBack(回调)的
差别 550
20.2 Client CallBack带来的改进 551
20.3 实现Client CallBack 552
20.3.1 HTML界面与JavaScript 553
20.3.2 CallBack的后置程序代码 554
20.4 Master-Detail功能的CallBack
范例 557
20.5 聊天室的CallBack范例(定时
执行) 561
20.5.1 聊天室的主程序——HTML
页面 561
20.5.2 聊天室的主程序——后置
程序代码 562
20.6 同时使用多个CallBack 564
20.7 ICallbackEventHandler接口的
不同写法 567
20.8 Client CallBack的组件 568