《ASP NET程序设计案例教程》课件第3章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《ASP NET程序设计案例教程》课件第3章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASP NET程序设计案例教程 ASP NET程序设计案例教程课件第3章 ASP NET 程序设计 案例 教程 课件
- 资源描述:
-
1、第3章 模块2站点界面设计3.1 【任务任务4】站点母版页设计站点母版页设计3.2 【任务任务5】使用主题和外观设置站点使用主题和外观设置站点页面页面3.3 【任务任务6】站点导航设计与广告显示站点导航设计与广告显示【本章提要本章提要】无论是大的门户网站还是只有少量页面的个人主页,一个主题明确和风格统一的网站总能给浏览者留下深刻的印象。本章以校园在线超市站点界面设计为主线,详细介绍了站点母版页的设计、主题、外观和站点导航控件的使用。【学习目标学习目标】理解母版页的工作原理。掌握使用母版页来处理站点中的统一布局的方法。掌握ASP.NET使用主题和外观来设置页面的方法。掌握站点导航与广告显示控件的
2、使用。掌握在母版页中使用控件的方法。任务描述任务描述在校园在线超市案例中,希望站点中的所有页面都有统一的风格,并且为了提高维护的效率,能快速修改网站整体风格,因此将母版页引入进来处理站点的统一布局。3.1 【任务任务4】站点母版页设计站点母版页设计 必备知识必备知识知识知识1 母版页概述母版页概述我们在访问站点的时候,经常会看到不同的页面上有着很多相似的内容,如公司的Logo、站点导航菜单等,并且这些页面布局也基本一致。对于页面上相同的内容是如何处理的呢?是在每一页都设计相同的内容还是通过其他技术实现的呢?ASP.NET2.0提供的母版页可以很好地解决这个问题。1母版页的概念母版页的概念母版页
3、实际上是网站的框架或模板,它为应用程序中的页创建一致布局,为应用程序中的所有页(或一组页)定义所需的外观和标准行为。通过创建要显示内容的各个内容页,并将内容页和母板页关联起来。因此当用户请求内容页时,这些内容页与母版页合并,并将母版页的布局与内容页的内容组合在一起输出,呈现到浏览器。2母版页的工作原理母版页的工作原理母版页由两部分组成,即母版页本身与一个或多个内容页。所有那些相对固定的内容放在母板页中,而可变内容放在内容页中。1)母版页母版页为具有扩展名.master(如MySite.master)的ASP.NET文件,它具有可以包括静态文本、HTML元素和服务器控件的预定义布局。母版页由特殊
4、的Master指令识别,该指令替换了用于普通.aspx页的Page指令。由上述代码可知,母版页和普通的网页的代码模型一致,既有单文件页模型,又有代码隐藏页模型。除Master指令外,母版页还包含所有顶级HTML元素,如Html、head和form。例如,在母版页上可以将一个HTML表格用于布局,将一个img元素用于公司徽标,将静态文本用于版权声明,并使用服务器控件创建站点的标准导航。可以在母版页中使用任何HTML元素和ASP.NET元素。除了在所有页上显示的静态文本和控件外,母版页还允许包括一个或多个ContentPlaceHolder控件。这些占位符控件定义可替换内容的区域,然后在内容页中定
5、义可替换的内容。无标题页 以上代码中,通过使用控件定义一个内容可替换区“PlaceHolder1”。也可以根据设计需要通过添加多个控件来定义多个内容可替换区,即每一个控件定义一个可替换区。2)内容页通过创建各个内容页来定义母版页的占位符控件的内容,这些内容页为绑定到特定母版页的ASP.NET页(.aspx文件以及可选的代码隐藏文件)。通过包含指向要使用的母版页的MasterPageFile属性,可在内容页的Page指令中建立绑定。例如,一个内容页可能包含下面的Page指令,该指令将该内容页绑定到MasterPage.master页。在内容页中,通过添加Content控件并将这些控件映射到母版页
6、上的contentplaceholder控件来创建内容。例如,母版页可能包含名为PlaceHolder1的内容占位符。在内容页中,可以创建一个Content控件,并将它映射到id为PlaceHolder1的contentplaceholder控件上。在内容页中,将页面内容添加到Content控件内,包括静态文本、HTML控件或服务器控件。在ASP.NET页中所执行的所有任务都可以在内容页中执行。例如,可以使用服务器控件和数据库查询或其他动态机制来生成Content控件的内容等。/添加内容,如静态文本、HTML控件或服务器控件在请求内容页(index.aspx)时,index.aspx与Mast
7、erPage.master合并以将MasterPage.master中定义的布局与index.aspx中的内容组合在一起输出,最终呈现给用户。这个关系如图3-1所示。母版页不能单独被执行,即不能在浏览器中直接请求母版页。如果尝试在浏览器中直接访问母版页,将得到如图3-2所示的结果。图3-1 母版页和内容页的合并图3-2 直接访问母版页3)母版页和内容页中的事件母版页和内容页都可以包含控件的事件处理程序。对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中触发事件,母版页中的控件在母版页中触发事件。控件事件不会从内容页发送到母版页,同样,也不能在内容页中处理来自母版页控件的事件。在某些情
8、况下,内容页和母版页中会触发相同的事件。例如,两者都触发Init和Load事件。当页面运行时,由于母版页会合并到内容页并被视为内容页的一个控件,因此,母版页与内容页合并后事件发生的先后顺序如下:母版页控件Init事件。内容页控件Init事件。母版页Init事件。内容页Init事件。内容页Load事件。母版页Load事件。内容页控件Load事件。内容页PreRender事件。母版页PreRender事件。母版页控件PreRender事件。内容页控件PreRender事件。知识知识2 使用母版页使用母版页1创建母版页创建母版页在VS 2005中,打开ASP.NET网站,选择“添加新项”,界面如图3
9、-3所示。图3-3 创建母版页创建母版页名称为“MasterPage.master”,保持其他默认选项,新建母版页MasterPage.master。MasterPage.master的文件代码如下:无标题页从上述代码可以看到,ASP.NET默认创建了一个内容可替换区。实际应用中还需要对该文件进行布局设计。假如页面设计为上、中、下三部分区域:上、下两部分显示固定内容;中间部分显示动态变化内容。经过部分设计代码修改如下:页面顶部显示区域页面底部显示区域在上面代码中,通过插入table元素,并添加三个单列行,将页面分成三个区域。其中,表格第二行存放可替换内容控件;第一行输入“页面顶部显示区域”,并
10、将该行背景色设为蓝色;第三行输入“页面底部显示区域”,并将该行背景色设为绿色。2实现内容页实现内容页虽然前面新增了一个母版页(MasterPage.master),但无法看到该母版页的设计效果。下面通过两种方式来应用母版页。1)新增内容页打开“添加新项”对话框,在模板列表中选择“Web窗体”,如图3-4所示。图3-4 添加内容页图3-5 选择母版页由图3-5可以看出,该对话框中左窗口列出了该站点的目录结果,右窗口则显示对应左边选定目录下的母版页。这里选择“MasterPage.master”母版页,单击“确定”按钮完成内容页的添加。切换到内容页的设计视图,将看到母版页的内容同内容页一起呈现出来
11、。在内容页中输入“Hello World!”,然后浏览该页,显示效果如图3-6所示。图3-6 显示效果2)在已有的页面应用母版页对于已创建但还未使用母版页的页面,可以通过简单地修改将它应用到母版页。这个过程只要将现有页面中的元素之间的内容放置到内,然后修改页面的Page指令的MasterPageFile属性,指定所应用的母版页即可,如MasterPageFile=MasterPage.master。3在内容页中访问母版页在内容页中访问母版页在实际应用中,有时候需要在内容页中访问母版页的内容。例如,在母版页中有一个输入搜索条件的文本框(txtSearch),需要在内容页中访问该文本框的内容。一般
12、可以通过弱类型引用和强类型引用两种方式来进行。为了提高对母版页成员的访问,Page类公开了Master属性,通过它可以获取对页面的母版页的访问。也可以通过创建MasterType指令创建对母版页的强类型引用。1)弱类型引用该方式是通过调用FindControl方法进行访问的。这种方式需要显式地给FindControl方法传递一个控件ID值,然后将返回值转换成已知类型的控件,再访问其属性。例如,要访问母版页中txtSearch控件的值,其代码如下所示:string strSearch=(TextBox)Master.FindControl(txtSearch).Text;要实现上面的代码,需要在
13、编写代码时知道该控件的类型和ID值。如果ID值输入错误,而在编译时编译器并不能发现错误,则直到运行时才会发现。2)强类型引用该方式是通过将母版页的内容通过公开的属性或方法暴露出来,让内容页直接访问。在下面的例子中,在母版页中以属性的方式公开母版页中的txtSearch控件的Text属性。public string SearchText get return txtSearch.Text;set txtSearch.Text=value;上述代码将txtSearch控件的Text属性公开为SearchText属性,因此在内容页中可以直接访问。string strSearch=(MasterPag
14、e)Master).SearchText;在上面的代码中,需要将Master显式地转换成母版页类的类型(MasterPage)。如果在页面中使用MasterType指令,则可以创建对母版页的强类型引用,代码如下:这时,访问母版页中的属性的代码如下:String strSearch=Master.SearchText;任务实现任务实现步骤1 打开校园在线超市ASP.NET网站,在“解决方案资源管理器”中打开“添加新项”对话框,在模板列表中选择“母版页”,给出母版页的名称为“MasterPage.master”,如图3-3所示。步骤2 双击打开登录页面“Login.aspx”,复制元素之间的内容,
15、粘贴到母版页文件“MasterPage.master”的元素之间。步骤3 将右边空白区中实现登录功能的控件布局用到的元素删除,代码范围如下所示:用户名:密 码:步骤4 在删除代码的位置添加如下代码:步骤5 修改登录页面“Login.aspx”,使其应用母版页。在Page指令中添加MasterPageFile属性,并指向“MasterPage.master”文件,代码如下所示:步骤6 删除登录页面“Login.aspx”文件中除Page指令的其他所有代码,在Page指令下面添加Content控件,代码如下所示:步骤7 将步骤3中所删除的代码粘贴在元素之间。步骤8 进入“设计
16、”界面,查看其设计效果,如图3-7所示。步骤9 浏览“Login.aspx”页面,查看其显示效果。图3-7 设计界面显示效果 任务描述任务描述在校园在线超市案例中,希望将网页的呈现风格通过统一的方式进行配置和管理,并且希望使界面风格的呈现变得更灵活、更丰富。在特定情况下,能使用更换主题来更换整个站点的风格和布局。3.2 【任务任务5】使用主题和外观设使用主题和外观设置站点页面置站点页面 必备知识必备知识知识知识1 ASP.NET主题和外观概述主题和外观概述1主题和外观的定义主题和外观的定义在网站设计时,往往需要将网页的呈现风格通过统一的方式进行配置和管理。在ASP.NET 2.0之前,这一工作
17、往往是通过级联样式表(CSS)来完成的,而在ASP.NET 2.0中,还可以通过主题来设置站点的样式,这为规划界面的呈现风格又提出了一种全新的解决方案,可以使界面风格的呈现变得更灵活、更丰富。主题是属性设置的集合,使用这些设置可以定义页面和控件的外观,然后在某个站点的所有页、整个站点或服务器上所有的站点中一致地应用此外观。外观是主题的主要构成元素之一,通过外观可以对服务器控件(如Button、Label、TextBox)进行属性或样式设置。2主题的组成主题的组成主题在站点的App_Themes目录中定义,由一组元素组成,包括外观、级联样式表(CSS)、图像和其他资源。1)外观外观文件的文件扩展
18、名为.skin,包括各个控件(如Button、Label、TextBox)的属性设置。控件外观设置类似于控件标记本身,但只包含要作为主题的一部分来设置的属性。例如,Button控件的控件外观代码如下:在Themes文件夹中创建.skin文件。一个.skin文件可以包含一个或多个控件类型的一个或多个控件外观。可以为每个控件创建一个单独的文件以定义其外观,也可以在一个文件中定义所有主题的外观。有两种类型的控件外观,即默认外观和已命名外观,其定义和使用情况如下:(1)当向页应用主题时,默认外观自动应用于同一类型的所有控件。如果控件外观没有SkinID属性,则是默认外观。例如,如果为Button控件创
19、建一个默认外观,则该控件外观适用于使用本主题的页面上的所有Button控件。默认外观严格按控件类型来匹配,因此Button控件外观适用于所有Button控件,但不适用于LinkButton控件或从Button对象派生的控件。(2)已命名外观是设置了SkinID属性的控件外观。已命名外观不会自动按类型应用于控件,而应当通过设置控件的SkinID属性将已命名外观显式地应用于控件。通过创建已命名外观,可以为站点中的同一控件的不同实例设置不同的外观。2)级联样式表主题还可以包含级联样式表(.css文件)。将.css文件放在主题目录中时,样式表自动为主题的一部分。使用文件扩展名.css在主题文件夹中定义
20、样式表。3)主题图形和其他资源主题还可以包含图形和其他资源,如脚本文件或声音文件。例如,页面主题的一部分可能包括TreeView控件的外观。可以在主题中包括用于表示展开按钮和折叠按钮的图形。通常,主题的资源文件与该主题的外观文件位于同一文件夹中,但也可以放在站点的其他地方,如主题目录的某个子文件夹中。若要引用主题目录的某个子文件夹中的资源文件,应使用类似Image控件外观中显示的路径,代码如下:也可以将资源文件存储在主题目录以外的位置。如果使用“”符号来引用资源文件,站点将自动查找相应的图像。例如,如果将主题的资源放在应用程序的某个子目录中,则可以使用格式为“/SubFolder/filena
21、me.ext”的路径来引用这些资源文件。3主题的类型主题的类型我们可以定义单个站点的主题,也可以定义供Web服务器上的所有站点使用的全局主题。定义主题之后,可以使用Page指令的Theme或StyleSheetTheme属性将该主题放置在单个页上,或者通过设置站点配置文件Web.config中的元素将其应用于应用程序中的所有页。如果在Machine.config文件中定义了元素,则主题将应用于服务器上的站点中的所有页。1)页面主题页面主题是一个主题文件夹,其中包括控件外观、样式表、图形文件和其他资源,该文件夹是作为站点中的App_Themes文件夹的子文件夹创建的。每个主题都是App_Them
22、es文件夹下一个不同的子文件夹。图3-8 页面主题2)全局主题全局主题是可以应用于服务器上的所有站点的主题。当需要维护同一个服务器上的多个站点时,可以使用全局主题定义域的整体外观。全局主题与页面主题类似,因为它们都包括属性设置、样式表设置和图形。但是,全局主题存储在Web服务器的名为Themes的全局文件夹中。服务器上的任何站点以及任何页面都可以引用全局主题。知识知识2 定义、应用主题和外观定义、应用主题和外观1定义主题和外观定义主题和外观通常,可以使用主题来定义与某个页或控件的外观或静态内容有关的属性。并不是所有的控件属性都可以通过主题来定义,只能设置那些其ThemeableAttribut
展开阅读全文