大师讲堂:ASP.NET 3.5开发范例精讲精析(基于C#)(CD)(附赠VCD光盘一张)
分類: 图书,计算机与互联网,图形图像、动画、多媒体与网页开发,综合,
品牌: 章立民
基本信息·出版社:科学出版社,北京科海电子出版社
·页码:700 页
·出版日期:2009年
·ISBN:7030238362/9787030238368
·条形码:9787030238368
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
·附带品描述:附赠VCD光盘一张
产品信息有问题吗?请帮我们更新产品信息。
内容简介ASP.NET是目前Web开发的主流技术之一,而ASP.NET 3.5是其最新版本。《大师讲堂-ASP.NET 3.5开发范例精讲精析(基于C#)(CD)》全面介绍了ASP.NET 3.5的技术精髓,以帮助读者快速学习或者过渡到ASP.NET 3.5。
书中首先介绍了.NET Framework 3.5和ASP.NET 3.5的新功能,并对ASP.NET网页进行了详尽的介绍,包括代码模型、运行模式、表达式语法、重定向网页、网页间的数据传递等;接下来对ASP.NET 3.5的主要控件进行了细致探讨,并用大量的网页范例示范了各控件的技术要点及开发应用技巧,包括验证控件、SqlDataSource、ObjectDataSource、列表控件、GridView、DetailsView、FormView和ListView等。
配书光盘提供了书中范例的源代码及范例所需的数据库文件,并有章立民研究室原声录制的高清晰技术视频。《大师讲堂-ASP.NET 3.5开发范例精讲精析(基于C#)(CD)》可以作为初、中级ASP.NET软件开发人员的学习用书,特别适合有一定ASP.NET、ASP基础的读者。
作者简介章立民:
华语世界资深IT作家,两岸三地公认最优秀的程序设计图书作家,18年技术图书撰写经验,著作已逾70本,全球销量逾西万册
在Microsoft(中国台湾)担任顾问与讲师长达17年六度获选微软最有价值专家(MVP)年度微软技术大会压轴讲师
章立民研究室技术总监
"经济部"信息专业人员鉴定计划命(审)题委员
"计算机技能基金会"数据库应用类命题委员
"工研院机械所"制造信息部顾问
"职训局"Visual Basic能力本位教材编撰委员
资诚会计师事务所信息系统服务部顾问
捷和建设信息部顾问
新势讯科技部经理
盘天科技总经理
盘天科技顾问
"一日志工协会"信息顾问
ComputerDIY杂志专栏执笔
RUN!PC杂志专栏执笔
Programmer杂志专栏执笔
曾任教于"教育部电算中心"、"空中大学、联电、南亚塑料、NIKE、台电核一厂、大众计算机、日立等中国台湾各大公民营企业与教学机构。
媒体推荐万贯家财,不如一技在身,积极充实自我,再创人生下一个高峰点。
——章立民
编辑推荐18年积淀百万册销量保障,章立民微软技术华语作者第一人,两岸三地公认最优秀的程序设计图书作家。
光盘收录章老师自录制的ASP.NET3.5新功能视频演示教程,书本之外的增值部分,同样精彩,不容错过!
章立民作品,全面剖析ASP.NET3.5的技术精髓,
要想成为技术高手,就得看专家写的书,
229个高含金量的Web范例,专注于解决实际开发问题,让您的技术水准再上层楼!
华语世界公认最优秀的程序设计图书作家章立民先生,带领最专业的技术团队,全面剖析ASP.NET3.5的技术精髓。
谈到ASP.NET 3.5,我想大家都了解其功能众多且广泛,不可能在一本书中讨论所有特性,再者,用户也有不同的需求和定位,因此我们将《大师讲堂-ASP.NET 3.5开发范例精讲精析》定位为“初级开发者的敲门砖”。
纵然各种网页技术推陈出新,然而一些基本的“根基”并没有改变。对于许多初学者而言,真正想要了解的,是网页的设计过程。然而综观市场,许多图书都将众多的网页开发概念视为理所当然,而太多的理所当然,却造成读者概念不够坚实,总有一种漫步在云端的感觉。基于这样的考虑,《大师讲堂-ASP.NET 3.5开发范例精讲精析》尽可能让大家了解网页的设计原理与流程,以便打下最扎实的根基。
纵然《大师讲堂-ASP.NET 3.5开发范例精讲精析》是面向有一定经验的初级读者,但书中仍然完整收录了许多实战上常用且重要的开发技巧。比如,如何响应客户端事件以便提升网页反应速度;善用各种数据验证控件来检验用户输入的数据(包括结合JavaScript的客户端验证);探讨重要的数据源与数据绑定控件:完整探讨ObjectDataSource控件,搭配优选范例来说明如何实现自定义分页机制与自定义排序机制,以便具体提升数据访问效能;全面讨论众所瞩目的ListView控件。读完本书,您将具备实际的网页开发能力,并达到专业的技能水准。
——章立民
光盘附赠章老师亲自录制的187分钟“Visanl studio 2008全新酷炫功能——Web开发篇”精彩视频教程,不容错过!!
一位资深的IT技术作家和Microsoft著名讲师,
一位与微软技术风雨同路17年的老程序员,
愿意与您共同分享他的技术和收获。
目录
开门见山:从实战开始学起 1
1-1 实际创建一个Web项目与数据库访问网页 2
1-2 ASP.NET 3.5的主要组成架构 13
1-2-1 网页与控件架构 13
1-2-2 ASP.NET编译器 14
1-2-3 安全性基础架构 14
1-2-4 完善的状态管理功能 14
1-2-5 应用程序配置设置 14
1-2-6 健全状况监视与性能机制 15
1-2-7 调试机制 15
1-2-8 XML Web服务架构 15
1-2-9 可扩展的主机服务与应用程序生命周期管理 15
1-2-10 可扩展的设计工具环境 15
1-3 ASP.NET 3.5新功能概述 15
1-3-1 全新的ListView控件 16
1-3-2 全新的DataPager控件 19
1-3-3 全新的LinqDataSource控件 19
1-3-4 全方位的AJAX开发能力 24
1-3-5 超好用的JavaScript IntelliSense功能 25
1-3-6 ASP.NET合并工具 26
1-3-7 完美整合IIS 7.0 26
1-3-8 全新的CSS设计工具 26
1-3-9 功能更完善的Web应用程序项目 27
1-3-10 多重目标架构的Web应用程序 28
1-3-11 创建与使用WCF服务 28
1-4 什么是 .NET Framework 3.5 29
1-5 ASP.NET 3.5平台的系统需求 29
结语 30
ASP.NET应用程序的灵魂:ASP.NET网页 31
2-1 实现一个ASP.NET网页 32
2-2 ASP.NET网页的功能特性 35
2-3 ASP.NET网页能够完成哪些操作 36
2-4 ASP.NET网页的代码模型 37
2-4-1 单一文件网页模型 38
2-4-2 代码隐藏网页模型 39
2-4-3 该选用哪一种网页模型 41
2-4-4 编译与部署 41
2-5 探讨ASP.NET的Page类 41
2-5-1 单一文件网页 42
2-5-2 代码隐藏网页 43
2-6 ASP.NET网页的运行模式 43
2-6-1 往返 43
2-6-2 重建网页 45
2-6-3 基于事件的模型与线性处理模型 45
2-7 ASP.NET网页的生命周期阶段 46
2-8 ASP.NET网页的生命周期事件 47
网页范例1 示范如何利用PreInit事件动态设置网页的主题 48
网页范例2 示范如何使用网页事件Load与PreRender 50
2-9 ASP.NET网页生命周期的其他考虑 53
网页范例3 示范如何动态设置网页的区域信息 53
2-10 ASP.NET服务器控件事件模型 55
2-10-1 服务器控件与网页的事件集 56
网页范例4 示范如何使用CheckBox控件的CheckedChanged事件 57
2-10-2 事件参数 59
网页范例5 示范如何使用ImageClickEventArgs类型参数 59
2-10-3 服务器控件中的回发与非回发事件 60
网页范例6 示范如何为网页动态应用样式表文件 60
2-10-4 冒泡事件 63
2-10-5 事件委托与AutoEventWireup属性 63
2-10-6 应用程序事件与会话事件 63
2-11 如何创建事件处理例程 64
2-12 如何在运行时绑定事件处理例程 66
2-13 如何将多个事件绑定到同一个事件处理例程 66
2-14 如何判断是哪一个服务器控件触发了事件 67
网页范例7 示范如何判断触发事件的服务器控件 67
2-15 服务器控件如何响应客户端事件 69
2-15-1 活用OnClientClick属性 69
网页范例8 示范如何使用OnClientClick属性来打开网站 70
网页范例9 示范如何使用OnClientClick属性进行删除确认 71
网页范例10 示范如何在GridView控件中进行删除确认 72
2-15-2 客户端属性 73
网页范例11 通过客户端属性来制作鼠标移入与移出效果 74
网页范例12 示范如何动态创建客户端属性来处理客户端事件 75
结语 76
万丈高楼平地起:ASP.NET网页的重要语法和技巧 77
3-1 怎样用好Web应用程序根运算符 ~ 78
3-2 程序代码块语法 78
网页范例1 示范怎样使用程序代码块语法 79
3-3 服务器端批注语法 80
3-4 服务器端#Include指示符语法 81
网页范例2 示范怎样使用 #Include来插入页眉和页脚 81
网页范例3 示范怎样使用包含文件来提高设计效率 82
3-5 表达式语法 83
3-5-1 使用取得连接字符串 83
网页范例4 示范使用取得连接字符串 84
3-5-2 使用取得应用程序设置 85
网页范例5 示范使用取得应用程序设置 85
3-5-3 使用取得资源文件设置 86
网页范例6 示范使用 取得资源文件设置 86
3-6 怎样在网页中检测浏览器的类型和版本 89
网页范例7 示范如何检测浏览器或客户端设备的相关信息 89
网页范例8 根据浏览器的类型和版本为网页应用不同的CSS样式表文件 90
3-7 重定向网页方法一:超级链接 92
3-8 重定向网页方法二:Response.Redirect方法 93
网页范例9 示范怎样根据用户计算机的区域语言设置来重定向网页 93
3-9 重定向网页方法三: Server.Transfer方法 94
3-10 重定向网页方法四:跨网页传送——PostBackUrl属性 95
3-11 重定向网页方法比较表 96
3-12 网页之间怎样使用查询字符串传递数据 97
网页范例10 示范如何使用查询字符串在各网页之间传递数据 98
3-13 Server.Transfer方法的数据传递方式 99
网页范例11 示范使用Server.Transfer方法时,怎样在目标网页上读取源网页的控件和公有属性
的值 100
3-14 跨网页传送的数据传递方式 103
3-14-1 源网页和目标网页位于相同的Web应用程序中 103
网页范例12 使用PreviousPage属性和@ PreviousPageType指示符来读取源网页的控件和公有
属性值 104
网页范例13 使用PreviousPage属性和@ Reference指示符来读取源网页的控件和公有属性值 110
3-14-2 源网页和目标网页位于不同的Web应用程序中 111
网页范例14 示范不同Web应用程序中网页的跨网页传送 112
3-15 判断网页是怎样被调用的 113
网页范例15 示范如何判断网页是怎样被调用的 115
3-16 怎样设置网页的默认焦点控件和默认按钮 116
网页范例16 示范使用默认焦点控件和默认按钮创建快速搜索界面 117
3-17 认识网页指示符 119
3-18 让网页倒数几秒后自动重定向到其他网页 120
网页范例17 示范倒数3秒后自动重定向到特定网页 120
网页范例18 示范如何以程序控制方式为网页添加meta标记 121
结语 122
界面设计前传:ASP.NET服务器控件的基本概念 123
4-1 ASP.NET服务器控件的类型 124
4-2 使用建议 130
4-3 浏览器功能所影响的方面 131
4-3-1 ASP.NET怎样自动检测浏览器类型 131
4-3-2 改写浏览器类型检测 131
4-3-3 关于AJAX功能 132
4-3-4 客户端脚本 132
4-3-5 使用早期版本的浏览器 132
4-4 如何将服务器控件添加到ASP.NET网页 134
4-5 以程序控制方式将服务器控件添加到ASP.NET网页 136
网页范例1 示范如何动态添加服务器控件 136
4-6 在设计阶段设置服务器控件的属性 138
4-7 以程序控制方式设置服务器控件的属性 138
4-7-1 动态使用常数值设置属性 138
网页范例2 示范如何使用常数值动态设置属性 139
4-7-2 动态使用枚举类型设置属性 139
网页范例3 示范如何使用枚举类型动态设置属性 139
4-7-3 动态设置单位属性 139
网页范例4 动态设置服务器控件的大小和单位 140
4-7-4 动态设置颜色属性 142
4-7-5 动态设置集合中的控件属性 143
网页范例5 示范怎样为ListBox服务器控件动态添加选项 143
4-7-6 使用Style对象动态应用样式 144
网页范例6 使用Style对象一次动态应用多种样式到多个服务器控件 144
网页范例7 根据用户所选择的样式来构建Style对象并应用到服务器控件 146
4-8 以程序控制方式设置HTML服务器控件的属性 146
网页范例8 示范如何使用Attributes集合取得HTML服务器控件的属性设置 146
4-9 服务器控件和样式表 147
4-9-1 解释外观属性 147
4-9-2 控件样式对象 148
4-9-3 样式对象的优先级和继承 148
4-9-4 直接控制CSS样式和类型 149
网页范例9 示范如何使用CssClass属性为服务器控件应用样式类 149
4-9-5 怎样设置样式属性 151
网页范例10 示范如何使用CopyFrom和MergeWith方法来应用样式 153
结语 154
网页的基本元素:探讨基础的ASP.NET服务器控件 155
5-1 Label服务器控件 156
网页范例1 将用户所提供的数据编码后赋给Label服务器控件 156
5-2 Literal服务器控件 157
网页范例2 将用户所提供的数据编码后赋给Literal服务器控件 158
5-3 TextBox服务器控件 159
5-3-1 访问数据值 159
5-3-2 善用TextMode属性 160
5-3-3 限制输入的字符数 160
5-3-4 是否为只读 160
5-3-5 是否自动回发 161
5-3-6 TextChanged事件 161
5-3-7 设置快捷键 161
网页范例3 结合文本框和数据绑定技巧的快速查询界面 161
网页范例4 TextChanged事件使用示范 162
5-4 CheckBox服务器控件 163
网页范例5 示范怎样使用复选框的InputAttributes和LabelAttributes属性 164
5-5 RadioButton服务器控件 168
网页范例6 示范如何使用RadioButton控件制作单选界面 168
5-6 Button服务器控件 170
网页范例7 示范如何使用Button服务器控件来触发查询操作 171
网页范例8 示范怎样使用命令按钮 172
网页范例9 示范怎样使用命令按钮来动态设置SqlDataSource控件的查询语句 174
网页范例10 示范如何为按钮添加鼠标移入和移出的变化效果 175
5-7 ImageButton服务器控件 175
网页范例11 ImageButton服务器控件坐标检测示范 176
网页范例12 鼠标指针移到ImageButton上方时的样式变换 177
5-8 LinkButton服务器控件 177
5-9 HyperLink服务器控件 177
网页范例13 示范通过HyperLink控件动态创建项目中的网页列表 178
5-10 Image服务器控件 180
网页范例14 结合HyperLink和Image服务器控件制作一个简单的相册 180
5-11 Calendar服务器控件 183
网页范例15 制作一个简单的日历界面 183
5-11-1 自定义日历的样式外观 184
5-11-2 自定义日期选择模式 186
网页范例16 Calendar服务器控件的日期选择示范 187
网页范例17 示范如何以程序控制方式选择多个日期 190
网页范例18 示范使用SelectRange方法选择指定的日期范围 191
5-11-3 控制月份导航 192
网页范例19 示范怎样快速导航到某年某月 193
5-11-4 自定义个别日期——重要!! 194
网页范例20 示范如何将自定义内容添加到日期中 195
5-12 ImageMap服务器控件 199
网页范例21 示范制作一个具有矩形热点的图片地图 202
网页范例22 示范制作一个具有圆形热点的图片地图 203
网页范例23 示范制作一个具有多边形热点的图片地图 204
网页范例24 示范制作一个会触发网页回发的图片地图 205
5-13 FileUpload服务器控件 208
结语 208
数据检验的利器:验证控件 209
6-1 验证操作的基本逻辑和思想 210
6-2 验证控件的类型 210
6-3 客户端验证 211
6-3-1 差异性 211
6-3-2 客户端验证对象模型 212
6-3-3 提交客户端验证错误 212
6-4 特殊案例的验证结果 212
6-4-1 空白字段 212
6-4-2 检查其他控件所保存的数据 213
6-5 输入数据非空验证 213
网页范例1 示范如何使用RequiredFieldValidator验证控件及其InitialValue属性——重要!! 215
6-6 比较特定值验证 217
网页范例2 示范怎样综合运用RequiredFieldValidator和CompareValidator验证控件来执行验证
操作 217
6-7 数据类型验证 219
网页范例3 示范如何使用CompareValidator验证控件验证日期数据类型 219
6-8 格式验证 221
网页范例4 示范使用RegularExpressionValidator验证控件来验证输入到文本框中的数据的格式 221
6-9 数据范围验证 223
网页范例5 使用RangeValidator验证控件来检查用户输入的数据是否处于指定的范围 223
6-10 进行自定义验证 225
6-10-1 服务器端验证 225
网页范例6 示范使用CustomValidator验证控件比较用户输入的数据和数据库数据表中的数据 225
6-10-2 客户端验证 227
网页范例7 示范如何使用CustomValidator控件进行客户端验证 228
网页范例8 示范同时使用CustomValidator控件的客户端验证和服务器端验证功能 231
网页范例9 使用CustomValidator控件的客户端验证来验证学生证号码(真实规则) 233
6-11 检查验证控件的验证状态 238
6-12 自定义验证错误信息的显示方式 239
网页范例10 示范使用ValidationSummary控件摘要显示验证错误信息正文和图片 241
6-13 怎样禁用验证 242
网页范例11 示范怎样使用CausesValidation属性来禁用验证 242
6-14 以程序控制方式验证ASP.NET服务器控件 243
网页范例12 示范怎样使用Validate方法 244
网页范例13 示范怎样使用Validate方法(使用控件作为验证条件) 245
结语 246
数据访问网页不求人:探索SqlDataSource控件 247
7-1 “传统”与“现代” 248
7-2 数据访问网页的设计步骤 251
7-3 DataBind方法 255
7-4 认识SqlDataSource控件 256
7-5 SqlDataSource控件的使用步骤 256
7-6 使用存储过程来提取数据 264
网页范例1 示范SqlDataSource控件如何使用存储过程来提取数据 264
7-7 使用自行编写的SELECT语句来提取数据 267
网页范例2 示范SqlDataSource控件如何使用自行编写的SELECT语句来提取数据 267
7-8 如何使用控件参数 270
网页范例3 使用控件参数制作快速输入查找界面 272
网页范例4 示范使用GridView控件作为参数的控件源——重要!! 274
网页范例5 示范使用两个控件提供条件值给参数 276
网页范例6 示范SqlDataSource控件如何搭配使用SQL Server存储过程的输入参数、输出参数与
返回值——重要!! 276
7-9 如何使用窗体参数 280
网页范例7 示范如何结合窗体参数与GridView控件制作一个新建、修改与删除数据界面 280
7-10 善用用户设置文件参数 283
网页范例8 示范结合用户设置文件参数来新建数据 283
7-11 如何使用查询字符串参数 285
网页范例9 示范如何使用查询字符串参数来筛选特定客户在特定年份的订货金额 286
7-12 如何使用会话参数 289
网页范例10 示范如何使用会话参数来查询本月寿星 289
7-13 如何使用Cookie参数 290
网页范例11 示范使用Cookie参数筛选信息部的本月寿星 291
网页范例12 示范结合用户Cookie参数来添加数据 293
7-14 如何使用Parameter对象 295
网页范例13 示范如何在运行时设置Parameter对象的值 295
7-15 你不可不知的CancelSelectOnNullParameter属性 296
7-16 数据集(DataSet)与数据读取器(DataReader) 299
7-17 如何使用FilterExpression属性筛选数据 300
网页范例14 示范使用FilterExpression属性来筛选数据 303
网页范例15 整合使用WHERE子句与FilterExpression属性来筛选数据 305
7-18 如何处理SQL命令执行错误 307
网页范例16 示范如何处理SELECT语句执行错误 308
7-19 如何取消执行SqlDataSource控件的命令 309
网页范例17 示范如何取消数据选择操作 310
网页范例18 示范如何取消数据的新建与更新操作 312
网页范例19 示范使用Inserting来添加输出参数并使用Inserted事件来取得新建数据行的主键 314
7-20 如何动态添加参数定义 318
网页范例20 以程序控制方式添加选择参数的定义 318
网页范例21 以程序控制方式添加输入参数、输出参数与返回值参数的定义 320
网页范例22 以程序控制方式添加INSERT语句的参数定义 323
7-21 如何以程序控制方式执行SqlDataSource控件的命令 325
网页范例23 示范如何调用SqlDataSource控件的Select、Insert、Update与Delete方法 325
网页范例24 示范使用SqlDataSource控件的Select方法返回包含二进制图像数据的数据对象 331
7-22 如何使用SqlDataSource控件缓存数据 336
7-22-1 启用SqlDataSource控件的缓存功能 336
网页范例25 示范如何使用SqlDataSource控件缓存数据特定的时间 336
7-22-2 关于CacheExpirationPolicy属性 337
结语 338
数据访问最随意:探讨ObjectDataSource控件 339
8-1 如何绑定到业务对象 340
网页范例1 示范将ObjectDataSource控件绑定到一个泛型集合对象 343
网页范例2 示范将ObjectDataSource控件绑定到一个数据读取器(DataReader)对象 345
网页范例3 示范将ObjectDataSource控件绑定到一个数据集(DataSet)对象 348
网页范例4 示范将ObjectDataSource控件绑定到一个Web服务 351
网页范例5 示范使用ObjectDataSource控件读取XML文件数据 354
8-2 如何使用参数 357
网页范例6 示范传递参数给业务对象的Insert、Update与Delete方法 358
8-3 善用不同类型的参数 366
网页范例7 示范如何使用ObjectDataSource控件的控件参数 366
8-4 使用对象传递参数给新建、修改与删除数据的方法 374
网页范例8 示范如何使用对象来传递参数给新建、修改与删除数据的方法 375
8-5 自定义分页机制,提高数据读取性能——非常重要!! 383
8-5-1 用户界面分页机制 383
网页范例9 采用用户界面分页机制来分页数据 384
8-5-2 数据源分页机制——必学!! 385
网页范例10 示范实现数据源分页机制 385
网页范例11 使用SQL Server 2005的存储过程实现数据源分页机制 388
网页范例12 实现数据源分页机制的输入/输出界面 390
8-6 自定义排序机制,提高数据读取性能——非常重要!! 393
8-6-1 用户界面排序机制 394
网页范例13 采用用户界面排序机制来排序数据 394
8-6-2 数据源排序机制 396
网页范例14 示范整合使用数据源分页机制与数据源排序机制 396
网页范例15 实现数据源分页机制与数据源排序机制的输入/输出界面 399
8-7 如何筛选数据 403
网页范例16 示范使用ObjectDataSource控件的FilterExpression属性 403
8-8 善用ObjectDataSource控件的事件 404
网页范例17 示范如何动态添加参数并设置其值 404
网页范例18 示范如何处理方法运行时的错误 407
结语 410
数据选择界面最便利:探讨列表控件 411
9-1 认识列表控件 412
9-2 怎样声明列表选项 413
网页范例1 示范怎样声明列表控件的选项 415
9-3 以声明方式绑定到数据源 418
网页范例2 示范以声明方式将列表控件绑定至数据源 420
9-4 以程序控制方式绑定到数据源 421
网页范例3 示范以程序控制方式将列表控件绑定到数据源 421
9-5 怎样取得列表中被选择的选项 424
网页范例4 示范如何取得被选择选项的相关信息 424
网页范例5 结合使用列表控件和控件参数 425
9-6 合并自定义选项和数据源选项——重要!! 426
9-7 启用网页回发功能 428
网页范例6 示范使用列表控件的自动回发功能 428
9-8 善用Items属性集合 429
网页范例7 示范怎样制作一个挑选界面 430
9-9 探讨CheckBoxList控件 432
网页范例8 示范如何动态创建CheckBoxList的各个复选框 433
网页范例9 示范使用CheckBoxList创建一个多选界面 433
网页范例10 示范使用CheckBoxList控件创建一份问卷调查表 434
网页范例11 示范结合使用CheckBoxList和SqlDataSource控件 438
9-10 探讨RadioButtonList控件 440
网页范例12 使用RadioButtonList控件创建一份购买订单 441
网页范例13 示范以程序控制方式和声明方式为RadioButtonList控件添加单选按钮 443
9-11 探讨DropDownList控件 446
网页范例14 示范以程序控制方式和声明方式为DropDownList控件添加选项 447
9-12 探讨ListBox控件 449
网页范例15 示范创建一个可复选的选择界面 450
9-13 探讨BulletedList控件 452
网页范例16 示范如何将BulletedList控件绑定到数据源并动态设置项目符号的样式 453
网页范例17 示范如何让BulletedList控件中的每一个选项显示成超级链接 457
网页范例18 示范如何判断选项列表中的哪一个链接按钮被单击 458
结语 460
全方位的数据访问界面:GridView控件基础概念篇 461
10-1 如何绑定到数据源 462
网页范例1 示范以声明方式将GridView控件绑定到数据源控件 462
网页范例2 示范以编程方式将GridView控件绑定到一个DataView对象 462
10-2 以拖放数据表与字段的方式快速创建GridView控件 465
10-3 美化GridView控件的外观 466
网页范例3 使用CSS类来设置GridView控件的外观 468
10-4 探讨GridView控件的数据行选择功能 470
10-4-1 如何让GridView控件具备数据行选择功能 471
10-4-2 判断用户在GridView控件中选择了哪一笔数据 472
网页范例4 示范如何使用两个GridView控件创建一对多界面 473
网页范例5 示范如何使用图片选择按钮并取得被选择数据行的相关信息 475
10-5 如何取得与设置GridView控件的主键 478
网页范例6 示范如何使用SelectedDataKey属性来连接GridView控件 479
10-6 探讨GridView控件的排序功能 483
10-6-1 如何启用GridView控件的排序功能 483
网页范例7 实现一个具备排序功能的GridView控件 485
10-6-2 如何禁用某一列的排序功能 486
网页范例8 示范禁用特定字段的排序功能 486
10-6-3 如何为链接按钮添加递增或递减的排序图标 486
网页范例9 示范使用Wingdings字体的符号作为递增或递减的排序符号 488
网页范例10 示范使用Webdings字体的符号作为递增或递减的排序符号 490
网页范例11 示范使用图片作为递增或递减的排序图片 492
网页范例12 示范使用图片作为递增或递减的排序图标 493
10-6-4 如何自定义排序界面 495
网页范例13 示范综合使用Button、LinkButton与ImageButton控件作为排序操作的标题控件 498
10-6-5 善用Sort方法来排序数据 503
网页范例14 根据多个字段来排序GridView控件的数据行 503
网页范例15 根据字段内容的长度来排序GridView控件的数据行 506
10-6-6 善用Sorting与Sorted事件 508
网页范例16 示范如何取消排序操作与动态更改排序表达式 508
10-7 探讨GridView控件的分页功能 510
10-7-1 如何启用GridView控件的分页功能 510
网页范例17 启用GridView控件的分页功能并要求一开始就显示最后一页 512
10-7-2 自定义分页界面 513
网页范例18 结合使用下拉列表、图片按钮与数字按钮来切换页次,并显示当前所在页次与
总页次 515
网页范例19 示范使用ImageButton控件作为页次切换按钮 522
10-7-3 善用PageIndexChanging与PageIndexChanged事件 523
网页范例20 示范如何使用PageIndexChanging与PageIndexChanged事件 523
10-8 探讨GridView控件的数据编辑功能 526
10-8-1 数据绑定控件的数据互动功能一览表 526
10-8-2 如何启用GridView控件的编辑与删除功能 526
网页范例21 使用GridView控件创建一个编辑与删除数据界面 529
网页范例22 结合GridView控件创建一个新建、修改与删除数据界面 529
10-8-3 如何让GridView控件具备删除确认功能 532
网页范例23 创建一个具备删除确认功能的输入/输出界面 533
10-8-4 善用与更新和删除操作相关的事件 534
网页范例24 使用更新和删除操作事件来更细腻地实现GridView控件的数据互动机制 536
10-8-5 探讨并发访问(Concurrency) 542
结语 544
全方位的数据访问界面:GridView控件应用技巧篇 545
11-1 空数据时的显示方式 546
11-1-1 如何使用EmptyDataText属性 546
网页范例1 使用EmptyDataText属性设置空数据时的界面 546
11-1-2 如何使用EmptyDataTemplate模板 547
网页范例2 使用EmptyDataTemplate模板制作一个交互式的空数据界面 547
11-2 探讨字段的类型 551
11-3 探讨绑定字段(BoundField) 552
网页范例3 示范自定义绑定字段的属性 555
11-4 探讨复选框字段(CheckBoxField) 557
网页范例4 示范使用复选框字段来显示与编辑布尔类型字段 557
网页范例5 示范如何让复选框的文字随着布尔类型字段内容更改 558
11-5 探讨超级链接字段(HyperlinkField) 561
网页范例6 示范以数据库字段内容的URL作为超级链接字段的URL 563
网页范例7 示范使用超级链接字段制作“客户”与“订单”的一对多界面 564
网页范例8 示范通过超级链接字段的重新定位来查看照片 567
网页范例9 示范通过超级链接字段来重新定位到一个内置框架中 568
11-6 探讨按钮字段(ButtonField) 569
网页范例10 创建一个简易的购物车 570
11-7 探讨图像字段(ImageField) 575
网页范例11 示范使用图像字段来显示网站中的照片文件 577
网页范例12 示范使用图像字段来显示网站中的产品照片 579
网页范例13 创建一个具备照片上传功能的简易文件相册 581
网页范例14 示范将数据库字段中的二进制图像数据显示在GridView控件中 586
11-8 探讨命令字段(CommandField) 589
网页范例15 示范使用命令字段为GridView控件添加编辑与删除数据功能 590
11-9 探讨模板字段(TemplateField) 592
网页范例16 使用模板字段协助创建一个简单的购物车 595
11-10 探讨数据绑定表达式的语法 598
11-10-1 什么是数据绑定表达式 599
11-10-2 如何使用Eval方法 599
网页范例17 示范使用数据绑定表达式显示各类型数据 600
网页范例18 示范使用数据绑定表达式组合出能够重新定位到其他网页的超级链接 602
11-10-3 提升数据绑定表达式的性能 602
网页范例19 示范在数据绑定表达式中将数据项转换成特定的类型 603
11-10-4 如何使用Bind方法 605
网页范例20 创建一个具备人性化编辑、验证与照片文件上传功能的GridView控件 606
11-11 探讨GridView控件的事件 614
网页范例21 示范制作鼠标指针移到数据行上方时的醒目提示效果 614
网页范例22 示范如何根据字段内容来设置数据行的颜色 616
网页范例23 示范为字段计算加总值并显示在页脚位置 617
网页范例24 示范如何制作横跨字段页眉与页脚的背景图片 618
网页范例25 以嵌套GridView控件的方法来制作“客户”与“订单”的一对多界面 621
11-12 如何以程序控制方式动态创建一个GridView控件 624
11-13 如何将GridView控件的内容导出成Excel文件 628
结语 630
数据访问界面双杰:DetailsView与FormView控件 631
12-1 探讨DetailsView控件 632
网页范例1 示范使用DetailsView控件创建一个新建、修改与删除数据界面(含删除确认功能),
并且能使用下拉列表框来切换页次 632
网页范例2 示范制作一对多界面,且具备照片文件上传编辑功能 637
网页范例3 结合ListView与DetailsView创建一个简易相册 643
12-2 探讨FormView控件 646
网页范例4 使用FormView控件制作明细数据界面 646
网页范例5 使用FormView控件创建一个简单的留言板界面 650
网页范例6 结合ListView与FormView创建一个简易相册 652
结语 652
王牌现身:全新的ListView控件 653
13-1 ListView控件的功能特性 654
13-2 如何创建LayoutTemplate与ItemTemplate模板 655
网页范例1 示范自定义ListView控件的LayoutTemplate与ItemTemplate模板 655
网页范例2 示范自定义ListView控件的外观 657
网页范例3 示范使用GridView与ListView控件制作一对多界面 658
13-3 善用ItemSeparatorTemplate模板 661
网页范例4 示范使用ItemSeparatorTemplate模板制作项目分隔图标 661
13-4 如何分组项目 661
网页范例5 示范通过分组项目来创建一个并排显示的表格式配置的ListView控件 662
13-5 如何分页数据 664
网页范例6 示范使用两个DataPager控件来分页显示ListView控件中的数据项 665
网页范例7 示范使用TemplatePagerField对象来自定义分页界面 666
网页范例8 示范如何使用自定义的分页按钮与PagerCommand事件 669
网页范例9 创建一个能让用户输入所要前往的页次的分页界面 671
13-6 如何排序数据 674
网页范例10 示范为ListView控件添加数据排序功能 674
13-7 如何动态设置排序表达式 676
网页范例11 示范在Sorting事件处理例程中动态设置排序表达式 676
网页范例12 示范使用Sort方法来排序ListView控件的数据行 678
13-8 如何选择数据 679
网页范例13 示范使用两个ListView控件制作一对多界面 679
13-9 如何新建、修改与删除数据行 680
网页范例14 示范使用ListView控件来编辑与删除数据 681
网页范例15 使用ListView控件来新建、修改与删除数据 684
13-10 如何为ListView控件中的项目应用样式 687
网页范例16 示范使用CSS类来格式化分页数字按钮的外观 688
13-11 探讨ListView控件的重要类 689
网页范例17 示范如何使用 ListViewItem 对象来根据字段内容更改数据的外观样式 691
13-12 ListView控件支持的事件 694
网页范例18 示范使用各事件来完成数据行的选择界面变换 695
结语 698
光盘使用说明 699
A-1 安装SQL Server 2008 Express Edition 700
A-2 安装范例数据库并复制范例网站 700
A-3 使用网页范例 700
……[看更多目录]
序言对我而言,写一本书的序言,往往是最痛苦的时刻。就好比跑一场马拉松,最后的50米却是悬崖峭壁,但必须奋力爬过,才算完成与完整。一直以来,我都不希望在序言中对技术高谈阔论,因为这样既展现不出个人风格,也看不出任何人文素养。如果你发现我们某本书的序言,竟在述说技术的“种种”,那表示已经无话可说,只好以此搪塞。但是若要谈心情转折,有时又会流于为赋新词强说愁,不仅显得矫情,更是“肉麻”。这种追求完美的矛盾情绪,最后其实是苦了自己。
为了寻找灵感,今天特地去了台大校园,希望假日校园里的宁静气氛可以让我多点灵感。不过很多事情都是事与愿违,心情没静下来不说,倒是兴致勃勃参加了该校为毕业生举行的活动,不仅到两行垂柳赛睡莲的“醉月湖”划船,还骑一匹高大骏马绕了一小圈,最后更观赏了一场棒球大战。我想即使是“台大人”,有这样经验的也不多吧!我只能说,生命中还是时时充满惊喜的。
其实这半年来发生了太多事情,几乎每一件都是我生命中的第一次,让我的心情犹如过山车一般上下起伏。还好年纪不小,表面上还能故作镇定,工作不仅没受到影响,效率甚至更高。不过相知相识多年的老友,即使多年没见,从国外回来一看到我,还是能从眉宇间察觉出那种说不出来的不安。真的,很多老友都在我生命中扮演重要角色,给我很多支持。记得远在对岸奋斗的J,只因某夜突然梦见我,担心我是不是有什么事情,隔天就与我联系,害我当场没感动得痛哭流涕。
人生真的很短暂。许多仿佛是昨日之事,其实都已过数年,甚至10年。我期望自己的未来,少点犹豫,多点行动,带着勇气,努力追寻,持续奋斗。以此共勉!
文摘插图:
网站开发的另一项重要议题就是如何赋予网站一致性的外观与风格,ASP.NET网页与控件架构提供的主题(Theme)与皮肤(Skin)功能,能够让您轻易控制网站的整体外观与风格。您可以自行定义主题与皮肤,并且以网页层级或控件层级来应用它们。
除了主题之外,您可以定义母版页(Master Page),以便为Web应用程序中的网页创建一致性的配置方式。母版页可以为Web应用程序的所有网页或某一组网页定义配置方式与标准的运行模式。然后您可以创建应用了母版页的内容页(ContentPage),以便在其中显示某个网页所专属的内容。当用户对内容页提出请求时,它们会与母版页进行合并,以便将母版页的配置与内容页的内容合并起来并呈现在浏览器中。
1-2-2 ASP.NET编译器
为了初始化强类型、进行性能优化,以及早期绑定等各种处理,所有的ASP.NET程序代码都会被编译。一旦程序代码被编译,Common Language Runtime会进一步将ASP.NET程序代码编译成原生程序代码,从而赋予其更优的性能。
ASP.NET包含一个编译器,它会将应用程序的所有组件(包括网页与控件)编译成一个组件,以便让ASP.NET主机环境可以使用它来服务用户的请求。
1-2-3安全性基础架构
除了.NET的安全性功能之外,ASP.NET还提供了一个高级的安全性基础架构来验证与授权用户访问,以及负责其他与安全性相关的工作。您可以使用IIS所提供的Windows身份验证来验证用户,也可以使用您自己的数据库来搭配ASP.NET。窗体验证与成员功能来管理验证。在Web应用程序的授权管理方面,您可以使用Windows组来完成,或使用ASP.NET角色功能的自定义角色数据库来进行。您可以根据应用程序自身的需求,轻易地删除、添加或替换这些架构。
由于ASP.NET固定会使用某一个Windows标识来执行,因此您可以使用Windows相关的安全性功能(例如:NTFS访问控制列表、数据库权限等)来打造应用程序的安全性机制。
1-2-4完善的状态管理功能
ASP.NET内置的状态管理功能可以保存不同网页请求之间的信息,如客户信息或购物车的内容。您可以保存并管理与应用程序、会话、网页、用户以及开发者相关的信息。这些信息可以相依于网页上的任何控件。
ASP.NET提供分布式的状态管理功能,即使是横跨一台或多台计算机上的相同应用程序的多个实例之间的状态信息,它也能够轻松管理。