新書推薦:
《
便宜货:廉价商品与美国消费社会的形成
》
售價:HK$
77.3
《
读书是一辈子的事(2024年新版)
》
售價:HK$
77.3
《
乐道文库·什么是秦汉史
》
售價:HK$
80.6
《
汉娜·阿伦特与以赛亚·伯林 : 自由、政治与人性
》
售價:HK$
109.8
《
女性与疯狂(女性主义里程碑式著作,全球售出300万册)
》
售價:HK$
109.8
《
药食同源中药鉴别图典
》
售價:HK$
67.0
《
设计中的比例密码:建筑与室内设计
》
售價:HK$
87.4
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:HK$
55.8
編輯推薦:
1、读者适用面广:本书较全面的涉及了ASP.NET的基础知识点,适合所有的ASP.NET学习者,如高校大学生、求职人员、培训结构学员等。2、实例丰富:通过丰富的实例辅助讲解知识点,附有相应的注释、实例说明,便于快速学习。3、实战性强:本书的实例都有配套的源代码,读者可以直接调用、研读和学习。4、合理的章节顺序:对于初学者,*怕前面的知识点用到后面的知识点。本书注重章节顺序的合理安排,使读者尽量做到循序渐进,层层递进的学习
內容簡介:
本书采用层层递进的方法,以Visual Studio 2013为开发平台,以技术应用能力培养为主线,全面介绍ASP.NET 的所有基本功能,主要包括ASP.NET基础、C#语言基础、Web服务器控件、ASP.NET内置对象、AJAX技术、服务器验证控件、数据库技术、主题和母版,并且以文章博客系统为综合实例,为读者提供了ASP.NET网站开发的学习模板,*后简单介绍项目开发常用的三层架构和MVC,为进一步的能力扩展提供了发展思路。 本书概念清晰,逻辑性强,内容由浅入深、循序渐进,通过大量示例来帮助读者熟悉和掌握ASP.NET的重要特性,并且通过每章后面的习题进一步帮助读者巩固所学知识。书中的示例来自作者多年的教学积累和项目开发经验,实用性强。本书不仅可作为高等院校计算机相关专业的Web程序设计、网络程序设计、Web数据库应用等课程的教材,也可作为Web应用程序开发自学用书。
目錄 :
目录
第1章ASP.NET基础1
1.1NET发展历史1
1.2什么是ASP.NET1
1.2.1当前流行开发技术1
1.2.2深入理解.NET3
1.3Visual Studio 2013环境3
1.3.1创建项目类型3
1.3.2创建第一个ASP.NET Web网站4
1.3.3Visual Studio环境中常用面板7
1.3.4程序运行方式8
1.4本章小结8
习题8
第2章C#语言基础9
2.1C#概述9
2.1.1良好的编程习惯9
2.1.2命名空间10
2.2数据类型12
2.2.1数据类型概述12
2.2.2值类型12
2.2.3引用类型15
2.2.4数据类型转换19
2.3类19
2.3.1类结构19
2.3.2类命名规则20
2.3.3类成员20
2.3.4类的调用26
2.4流程控制28
2.4.1选择28〖1〗ASP.NET网站开发教程目录[3]〖3〗2.4.2循环30
2.4.3跳跃32
2.5异常处理33
2.5.1异常处理的作用33
2.5.2trycatch和throw、throws的区别34
2.5.3常见异常类34
2.5.4实例34
2.6本章小结35
习题35
第3章Web服务器控件37
3.1ASP.NET事件处理37
3.2文本类控件38
3.2.1Label控件39
3.2.2TextBox控件40
3.2.3HyperLink控件40
3.3按钮类控件41
3.4图像类控件41
3.4.1Image控件42
3.4.2ImageMap控件44
3.5列表类控件45
3.5.1DropDownList控件45
3.5.2ListBox控件48
3.5.3CheckBoxList控件50
3.5.4RadioButtonList控件51
3.6容器控件51
3.6.1Panel控件51
3.6.2PlaceHolder控件52
3.6.3View和MultiView控件53
3.7向导控件55
3.8其他控件58
3.8.1FileUpload控件58
3.8.2AdRotator控件59
3.8.3Calendar控件61
3.9本章小结62
习题63
第4章ASP.NET内置对象64
4.1Response对象64
4.2Request对象67
4.3Server对象70
4.4Cookie对象73
4.5Session对象75
4.6Application对象76
4.7本章小结80
习题81
第5章AJAX技术82
5.1概述82
5.2AJAX控件83
5.2.1ScriptManager控件83
5.2.2UpdatePanel控件84
5.2.3UpdateProgress控件92
5.2.4Timer控件94
5.3本章小结96
习题97
第6章服务器验证控件98
6.1概述98
6.1.1验证控件的作用98
6.1.2验证控件基本属性98
6.2控件介绍99
6.2.1RequiredFieldValidator控件99
6.2.2CompareValidator控制99
6.2.3RangeValidator控件99
6.2.4RegulerExpressionValidator控件99
6.2.5CustomValidator控件100
6.2.6ValidationSummary控制100
6.3控件使用实例100
6.4本章小结114
习题114
第7章数据库技术115
7.1建立SQL Server Express LocalDB数据库115
7.2基本SQL语句117
7.2.1SELECT查询语句117
7.2.2INSERT插入语句118
7.2.3UPDATE更新语句118
7.2.4DELETE删除语句118
7.3数据源控件和数据绑定控件119
7.4LINQ数据库技术129
7.5本章小结146
习题146
第8章主题和母版147
8.1主题147
8.1.1主题的创建147
8.1.2主题的应用149
8.1.3动态应用主题实例151
8.1.4主题应用注意事项154
8.2母版154
8.2.1创建母版页154
8.2.2创建内容页155
8.3本章小结156
习题156
第9章项目实训: 文章博客157
9.1网站结构图157
9.2创建数据库MyBlog157
9.3制作母版页159
9.3.1用户列表控件159
9.3.2登录注册模块161
9.3.3用户功能列表模块170
9.3.4母版中设置主题切换170
9.4首页文件171
9.5文章详情页173
9.6注册页面175
9.7发表文章页176
9.8文章管理页177
9.8.1LINQ技术实现数据源178
9.8.2GridView控件设计178
9.8.3删除功能180
9.8.4全选功能180
9.8.5光棒效果182
9.8.6编辑功能182
9.9个人资料修改页184
9.10本章小结187
第10章项目架构188
10.1三层架构188
10.1.1三层架构的理解189
10.1.2三层架构优缺点191
10.2MVC架构192
10.2.1MVC架构的理解192
10.2.2MVC优势193
10.3三层架构与MVC193
10.4本章小结194
参考文献195
內容試閱 :
前言 1. 编写背景目前网络应用已普及到每个人的身边,微博、博客、播客、个人主页、公司主页等不同形式的信息传递方式铺天盖地而来。每个人都想在网络中有自己特色的内容,但一些商业网站提供的模板单一死板,不能满足人们的需要,通过自己学习一些Web技术,就可以开发出具有个性的页面。ASP.NET不仅是微软公司最重要的战略性产品之一,而且还是Web开发领域最具创新性、最成功的技术之一。它可完全利用.NET架构的强大、高效、安全的平台特性。ASP.NET以功能丰富、性能卓越、高效稳定和开发便利而著称,ASP.NET技术是目前开发Web应用程序的最流行和最前沿的技术,也是公司网络开发使用最多和应用人群最广的技术。2. 本书内容本书采用层层递进的方法,以Visual Studio 2013为开发平台,以技术应用能力培养为主线,全面介绍ASP.NET 的所有基本功能,主要包括ASP.NET基础、C#语言基础、Web服务器控件、ASP.NET内置对象、AJAX技术、服务器验证控件、数据库技术、主题和母版,并且以文章博客系统为综合实例,为读者提供了ASP.NET网站开发的学习模板,最后简单介绍项目开发常用的三层架构和MVC,为进一步的能力扩展提供了发展思路。本书概念清晰,逻辑性强,内容由浅入深、循序渐进,通过大量示例来熟悉和掌握ASP.NET的重要特性,并且通过每章后面的习题进一步巩固所学知识。书中的示例来自作者多年的教学积累和项目开发经验,实用性强。本书不仅可作为高等院校计算机相关专业的Web程序设计、网络程序设计、Web数据库应用等课程的教材,也可作为Web应用程序开发自学用书。本书共分10章,各章内容如下。第1章: 主要介绍ASP.NET基础和C#语言基础。第2章: 主要介绍C#语言基础。第3章: 主要介绍Web服务器控件。第4章: 主要介绍ASP.NET内置对象。第5章: 主要介绍AJAX技术。第6章: 主要介绍服务器验证控件。第7章: 主要介绍数据库访问技术。第8章: 主要介绍主题和模板。第9章: 主要介绍文章博客系统项目的开发。第10章: 主要介绍当前项目开发流行的技术架构。3. 本书特点(1) 读者适用面广。本书较全面的涉及了ASP.NET的基础知识点,适合所有的ASP.NET学习者,如高校大学生、求职人员、培训结构学员等。(2) 实例丰富。通过丰富的实例辅助讲解知识点,附有相应的注释、实例说明,便于快速学习。(3) 实战性强。本书的实例都有配套的源代码,读者可以直接调用、研读和学习。(4) 合理的章节顺序。对于初学者,最怕前面的知识点用到后面的知识点。本书注重章节顺序的合理安排,使读者尽量做到循序渐进,层层递进的学习。本书主要由解春燕编写,参与编写的人员有张军鹏、吕晓晴、杨芳、郭宏刚、黄文艳、梁伟、刘晨光和苗文曼(排名不分先后)。本书中实例程序的全部源程序代码,是读者学习过程中的好助手,可以从出版社网站下载,网址是http:www.tup.com.cn。在此特别感谢为本书付出辛勤劳动的各位同事、朋友。由于时间仓促和编者水平有限,书中难免有不妥或错误之处,恳请同行专家批评指正。联系Email:xxiexiex@163.com。
〖1〗ASP.NET网站开发教程前言[3]〖3〗编者2015年2月
第5章AJAX技术5.1概述AJAX全称为Asynchronous JavaScript and XML(异步JavaScript和XML),是指一种用于创建交互式网页应用的网页开发技术,也是一种运用JavaScript和XML语言,在网络浏览器和服务器之间传送或接收数据的技术。通常称AJAX页面为无刷新Web页面。AJAX并没有创造出某种具体的新技术,它使用的所有技术都是在很多年前就已经存在了,然而AJAX以一种崭新的方式来使用所有这些技术,使得古老的BS方式的Web开发焕发了新的活力,迎来了第二个春天。在AJAX技术之中,最核心的技术就是XMLHttpRequest,XMLHttpRequest可以在不重新加载页面的情况下更新网页,即实现了布局刷新功能。XMLHttpRequest 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或一个 DOM 文档的形式返回内容,这是AJAX程序架构的一项关键功能。与传统的Web开发不同,在AJAX应用中,每个页面都包括一些使用 JavaScript开发的AJAX组件。这些组件使用XMLHttpRequest对象,以异步的方式与服务器通信,从服务器获取需要的数据后更新页面中的一部分内容,它使浏览器可以为用户提供更为自然的浏览体验。在AJAX之前,Web站点强制用户进入提交等待重新显示范例,用户的动作总是与服务器的思考时间同步。借助于AJAX,可以在用户单击按钮时,使用JavaScript和DHTML立即更新用户界面UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信。AJAX应用与传统的Web应用的区别主要在以下3个方面。 不刷新整个页面,实现页面局部与服务器端的动态交互。 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。 应用服务仅由少量页面组成。大部分交互在页面之内完成,不需要切换整个页面。由此可见,AJAX使得Web应用更加动态,具有更高的智能,并且提供了表现能力丰富的AJAX UI组件。目前AJAX已经成为了Web应用的主流开发技术,大量的业界巨头已经采纳并且在大力推动这个技术的发展,其中非常引人注目的如Google的Google Maps和微软的Windows Live等。由于AJAX是客户端技术,所以对浏览器的依赖性较大,用户使用老旧浏览器时可能会受影响,使用时需要有限考虑浏览器兼容问题。〖1〗ASP.NET网站开发教程第5章AJAX技术[3]〖3〗到这里,读者应该对AJAX有一个总体印象了。那么AJAX具体是怎么实现的呢?AJAX的工作原理相当于在用户和服务器之间加了一个中间层即AJAX引擎,使用户请求与服务器响应异步化。这样使页面像桌面程序一样不必每次都刷新,也不用每次将数据处理的工作都交给服务器去做,而是把以前的一些服务器负担的工作转交给客户端,利用客户端闲置的处理能力来处理,减轻服务器和带宽的负担。简而言之,就是通过XmlHttpRequest让客户端可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。下面以购物车为例,展示AJAX是如何减轻服务器和带宽负担的。传统Web站点中,在用户单击一个按钮时,会触发一个页面回送效果,用于整个页面的更新,这样在客户端与服务器之间就传输了整个页面的数据。假如用户需要的只是更新页面中很小的一块区域,如购物车中的账单总额信息,上面的机制显然不合适,尤其是在带宽比较小或服务器负载比较大时,对用户的上网体验有很大的影响。如果使用AJAX技术,上面的问题就迎刃而解了。用户将需要更新的那一块小区域单独拿出来,每次单击按钮时,不再产生整个页面的回送,而仅仅是这个小区域的局部回送而已,这样,服务器就不必处理整个页面的请求了,带宽负载也由上百千字节降到几千字节而已,由此可以提供响应更加灵敏的UI,并消除页面刷新所带来的闪烁,用户体验可见一斑。5.2AJAX控件图51给出了Visual Studio工具箱中的AJAX扩展,主要包括ScriptManager Timer、UpdatePanel以及UpdateProgress等服务器端控件。这些AJAX控件在使用时与其他ASP.NET控图51ASP.NET AJAX服务器控件件一样方便。下面介绍这些控件及其使用方法。5.2.1ScriptManager控件ScriptManager控件是AJAX功能的核心,是客户端页面和服务器之间的桥梁。它用来处理页面上的所有组件以及页面局部更新,包括将Microsoft AJAX库的JavaScript脚本下载到浏览器中生成相关的客户端代理脚本,以及能够在JavaScript中访问Web Service。主要的功能如下。1 负责自动建立客户端浏览器上需要的AJAX ClientScript(也就是JavaScript代码),并且针对页面上需要的各项JavaScript机制进行处理。2 ScriptManager控件对于整个异步Postback有着决定性的影响,配合UpdatePanel提供异步Postback的能力,并且管理异步Postback的进行。3 让开发人员可以通过前端的JavaScript代码来调用后端的Web Services,提供手动的AJAX功能。4 提供Microsoft AJAX Library中的ClientScript,让开发人员可以简化JavaScript的撰写,并且扩充JavaScript的功能。因此,无论需要何种AJAX功能,都需要在页面上拖曳出ScriptManager控件,以作为一切的基础。如果只是在一小部分的页面上需要AJAX功能,那么通常可以将ScriptManager控件直接放到内容页中,如果在整个站点都需要AJAX,那么将ScriptManager控件放到母版页中是一个理想的解决方案,这样在各内容页中就不需要放置ScriptManager控件了。但需要注意的是,所有需要支持AJAX的ASP.NET页面上有且只能有一个ScriptManager控件。如果在母版页中已添加了ScriptManager控件,则在内容页中就不能再添加ScriptManager控件。如果这时还要在内容页中使用ScriptManager控件的其他功能,可以通过添加ScriptManagerProxy控件来实现。ScriptManager控件有许多属性,其中绝大部分用于高级场景,对于简单应用来说,不需要改变ScriptManager控件的任何属性,但是在面对复杂的、更加丰富的应用时,就需要更改相关的属性了,感兴趣的读者可以查阅相关资料进一步学习。5.2.2UpdatePanel控件UpdatePanel控件可以用来创建丰富的局部更新的Web应用程序。UpdatePanel本身是一个容器控件,控件本身不会显示任何内容,仅相当于页面中的一个小局部区域,用于实现局部刷新和无闪烁页面。UpdatePanel控件的使用可以大大减少客户端脚本的编写工作量。在基本的应用程序中,只要将相关控件放入UpdatePanel中即可。当UpdatePanel控件中的某个控件产生到服务器端的回送时,只刷新UpdatePanel区域,其外的页面部分并不会更新。实例51认识局部刷新。局部刷新功能在第4章的实例410中已经使用过,主要使用UpdatePanel控件,该控件提供了一个范围,即局部刷新的范围。将需要局部刷新功能部分放置在UpdatePanel范围内,即可实现局部刷新功能,没有放置在UpdatePanel范围内的控件将会引起整个页面刷新。下面通过实例进一步理解局部刷新。图52前台设计图1 新建一个Web窗体,页面添加一个Button控件(Button1)和一个Label控件(Label1),然后在AJAX 控件组中拖取一个ScriptManager控件和一个UpdatePanel控件,最后在UpdatePanel里面放入一个Button控件(Button2)和一个Label控件(Label2),如图52所示。2 添加两个按钮事件,代码如下:
protected void Button1_Clickobject sender, EventArgs e{Label1.Text=DateTime.Now.ToLongTimeString;}protected void Button2_Clickobject sender, EventArgs e{Label2.Text=DateTime.Now.ToLongTimeString;}3 运行,单击Button1按钮,观察浏览器,可以看到整个页面的回送;单击Button2按钮,观察浏览器,看不到整个页面的回送。但是通过时间的改变,能够知道Label2所在的小区域发生了页面的局部回送,引起Label2的数据更新,如图53所示。图53单击button1的结果4 看到这里,有些读者也许会产生疑问,因为在Button2_Click事件中,并没有改变Label1显示的值,所以,在单击Button2按钮后,Label1不应该有变化,也就不足以说明只有UpdatePanel里面的内容进行了局部刷新。下面继续以下步骤。5 修改Button2按钮事件代码,增加Label1文本赋值语句,代码如下:protected void Button2_Clickobject sender, EventArgs e{Label1.Text=DateTime.Now.ToLongTimeString;Label2.Text=DateTime.Now.ToLongTimeString;}6 按F5键运行,单击Button2按钮,我们会发现,只有局部范围内的Label2发生了改变,说明Button2按钮触发的页面回送只是局部的,并不是整个页面的回送,只有UpdatePanel控件所包含的区域进行了局部更新。至此,似乎可以得到结论: UpdatePanel控件里面的控件如果能引发页面回送的话,就只更新UpdatePanel控件区域;UpdatePanel控件外面的控件如果引发页面回送的话,UpdatePanel控件区域也会更新。其实,UpdatePanel里面的控件也可以引发其外的更新;同样,其外的控件也可以只引发UpdatePanel区域更新。在具体讲解前,先看一看UpdatePanel控件主要的属性,如图54所示。图54UpdatePanel控件属性图下面,再看一下UpdatePanel控件的默认属性。从工具箱中拖取一个UpdatePanel控件,打开UpdatePanel的属性面板,如图55所示。图55UpdatePanel属性面板默认值1 ChildrenAsTriggers属性的默认值是True,即UpdatePanel控件内部的子控件引发的页面回送都会使得UpdatePanel区域的局部刷新。2 UpdateMode属性的默认值是Always,即页面上任意一个局部更新被触发,此UpdatePanel就会更新。当某个页面中有多个UpdatePanel共存时,由于UpdatePanel的UpdateMode属性值默认为Always,所以页面上如果有一个局部更新被触发,则所有的UpdatePanel都将更新。这也许与设计初衷不相符,所以为了避免这种情况,可以把UpdateMode属性设置为Conditional,然后为每个UpdatePanel设置专用的触发器。下面通过示例,深入讲解UpdatePanel的各种使用情况。实例52内部子控件不再引发UpdatePanel刷新。1 添加一个Web窗体,在页面中拖放一个ScriptManager控件和一个UpdatePanel控件,在UpdatePanel中放入一个Button控件(Button1)和一个Label控件(Label1),并将UpdatePanel控件的ChildrenAsTriggers属性设置为False。2 双击Button1,进入.cs后台文件,代码如下:protected void Button1_Clickobject sender, EventArgs e{Label1.Text=DateTime.Now.ToLongTimeString;}