skin样式文件,非要放在App_Themes下面才可以用??

cmxstudio 2007-03-24 01:18:14
如题~~我另外单独放个目录,怎么让控件调用这个样式文件?
...全文
211 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
babay2008 2007-03-26
  • 打赏
  • 举报
回复
这样方便调用,也方便管理啦
vrhero 2007-03-24
  • 打赏
  • 举报
回复
为什么要“单独放个目录”?没有任何必要
chy710 2007-03-24
  • 打赏
  • 举报
回复
方便使用主题themes
zhenjiaobing 2007-03-24
  • 打赏
  • 举报
回复
<link href="" rel="stylesheet" type="text/css" runat=server id=css_ />
css_.Href = "你自己的CSS路径";
第4章 ASP.NET的网页代码模型及生命周期 从本章开始,就进入了ASP.NET应用程序开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发ASP.NET应用程序。在ASP.NET中,能够使用面向对象的思想和软件开发中的一些思想,例如封装、派生、继承以及高级的设计模式等。本章首先介绍ASP.NET中最重要的概念---网页代码模型。 4.1 ASP.NET的网页代码模型 在ASP.NET应用程序开发中,微软提供了大量的控件,这些控件能够方便用户的开发以及维护。这些控件具有很强的扩展能力,在开发过程中无需自己手动编写。不仅如此,用户还能够创建自定义控件进行应用程序开发以扩展现有的服务器控件的功能。 4.1.1 创建ASP.NET网站 在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,ASP.NET网站的网页元素包含可视元素和页面逻辑元素,并不包含designer.cs文件。而ASP.NET应用程序包含designer.cs文件。创建ASP.NET网站,首先需要创建网站,单击【文件】按钮,在下拉菜单中选择【新建网站】选项,单击后会弹出对话框用于ASP.NET网站的创建,如图4-1所示。 图4-1 新建ASP.NET网站 在【位置】选项中,旁边的【下拉菜单】可以按照开发的需求来写,一般选择文件系统,地址为本机的本地地址。语言为.NET网站中使用的语言,如果选择Visual C#,则默认的开发语言为C#,否则为Visual Basic。创建了ASP.NET网站后,系统会自动创建一个代码隐藏页模型页面Default.aspx。ASP.NET网页一般由三部分组成,这三个部分如下所示。 q 可视元素:包括HTML,标记,服务器空间。 q 页面逻辑元素:包括事件处理程序和代码。 q designer.cs页文件:用来为页面的控件做初始化工作,一般只有ASP.NET应用程序(Web Application)才有。 ASP.NET页面中包含两种代码模型,一种是单文件页模型,另一种是代码隐藏页模型。这两个模型的功能完全一样,都支持控件的拖拽,以及智能的代码生成。 4.1.2 单文件页模型 单文件页模型中的所有代码,包括控件代码、事物处理代码以及HTML代码全都包含在.aspx文件中。编程代码在script标签,并使用runat=“server”属性标记。创建一个单文件页模型,在【文件】按钮中选择【新建文件】选项,在弹出对话框中选择【Web窗体】或在右击当前项目,在下拉菜单中选择【添加新建项】选项即可创建一个.aspx页面,如图4-2所示。 图4-2 创建单文件页模型 在创建时,去掉【将代码放在单独的文件中】复选框的选择即可创建单文件页模型的ASP.NET文件。创建后文件会自动创建相应的HTML代码以便页面的初始化,示例代码如下所示。 <%@ Page Language=“C#” %> <script runat=“server”> 无标题页
编译并运行,即可看到一个空白的页面被运行了。ASP.NET单文件页模型在创建并生成时,开发人员编写的类将编译成程序集,并将该程序集加载到应用程序域,并对该页的类进行实例化后输出到浏览器。可以说,.aspx页面的代码也即将会生成一个类,并包含内部逻辑。在浏览器浏览该页面时,.aspx页面的类实例化并输出到浏览器,反馈给浏览者。ASP.NET单文件页模型运行示例图如图4-3所示。 图4-3 单文件页模型 4.1.3 代码隐藏页模型 代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码。这种过程被成为代码分离。 代码分离有一种好处,就是在.aspx页面中,开发人员可以将页面直接作为样式来设计,即美工人员也可以设计.aspx页面,而.cs文件由程序员来完成事务处理。同时,将ASP.NET中的页面样式代码和逻辑处理代码分离能够让维护变得简单,同时代码看上去也非常的优雅。在.aspx页面中,代码隐藏页模型的.aspx页面代码基本上和单文件页模型的代码相同,不同的是在script标记中的单文件页模型的代码默认被放在了同名的.cs文件中,.aspx文件示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” CodeFile=“Default.aspx.cs” Inherits=“_Default” %> 无标题页
从上述代码中可以看出,在头部声明的时候,单文件页模型只包含Language=“C#”,而代码隐藏页模型包含了CodeFile=“Default.aspx.cs”,说明被分离出去处理事物的代码被定义在Default.aspx.cs中,示例代码如下所示。 using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; //使用HtmlControls using System.Web.UI.WebControls; //使用WebControls using System.Web.UI.WebControls.WebParts; //使用WebParts public partial class _Default : System.Web.UI.Page //继承自System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } 上述代码为Default.apx.cs页面代码。从上述代码可以看出,其格式与类库、编写类的格式相同,这也说明了.aspx页面允许使用面向对象的特性,如多态、继承等。但是ASP.NET代码隐藏页模型的运行过程比单文件页模型要复杂,运行示例图如图4-4所示。 图4-4 代码隐藏页模型 上述描述了代码隐藏类模型的页面生成模型。当页面被呈现之前,ASP.NET应用程序会解释并编译相应的cs文件中的代码,与此同时,ASP.NET应用程序还会将.aspx页面进行编译并生成.aspx页面对应的类。生成.aspx页面对应的类后会将该类与cs文件中的类进行协调生成新的类,该类会通过IIS在用户浏览页面时呈现在用户的浏览器中。 4.1.4 创建ASP.NET Web Application ASP.NET网站有一种好处,就是在编译后,编译器将整个网站编译成一个DLL(动态链接库),在更新的时候,只需要更新编译后的DLL(动态链接库)文件即可。但是ASP.NET网站却有一个缺点,编译速度慢,并且类的检查不彻底。 相比之下,ASP.NET Web Application不仅加快了速度,只生成一个程序集,而且可以拆分成多个项目进行管理。创建Application,首先需要新建项目用于开发Web Application,单击菜单栏上的【文件】按钮,在下拉菜单中选择【新建项目】选项,在弹出窗口中选择【ASP.NET应用程序】选项,如图4-5所示。 图4-5 创建ASP.NET应用程序 在创建了ASP.NET应用程序后,系统同样会默认创建一个Default.aspx页面,不同的是,多出了一个Default.aspx.designer.cs,用来初始化页面控件,一般不需要修改。 4.1.5 ASP.NET网站和ASP.NET应用程序的区别 在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点: q 可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和维护。 q 可以从项目中和源代码管理中排除一个文件或项目。 q 支持VSTS的Team Build方便每日构建。 q 可以对编译前后的名称,程序集等进行自定义。 q 对App_GlobalResources 的Resource强类支持。 ASP.NET WebSite编程模型具有以下特点: q 动态编译该页面,而不用编译整个站点。 q 当一部分页面出现错误不会影响到其他的页面或功能。 q 不需要项目文件,可以把一个目录当作一个Web应用来处理。 总体来说,ASP.NET网站适用于较小的网站开发,因为其动态编译的特点,无需整站编译。而ASP.NET应用程序适应大型的网站开发、维护等。 4.2 代码隐藏页模型的解释过程 在ASP.NET的代码隐藏页模型中,一个完整的.aspx页面包含两个页面,分别是以.aspx和.cs文件为后缀的文件,这两个文件在形成了整个Web窗体。在编译的过程中都被编译成由项目生成的动态链接库(.DLL),同时,.aspx页面同样也会编译。但是与.cs页面编译过程不同的是,当浏览者第一次浏览到.aspx页面时,ASP.NET自动生成该页的.NET类文件,并将其编译成另一个.DLL文件。 当浏览者再一次浏览该页面的时候,生成的.DLL就会在服务器上运行,并响应用户在该页面上的请求或响应,ASP.NET应用程序的解释过程图如4-6所示。 图4-6 代码隐藏页模型页面的执行过程 在客户端浏览器访问该页面时,浏览器会给IIS发送请求消息,IIS则会开始执行ASP.NET编译过程,如果不存在编译过后的DLL文件,则加载编译的类并创建对象。当创建对象完成,生成创建对象后的代码并生成一个ASPX页面代码,该页面代码反馈给IIS,IIS再反馈成HTML页面的形式给客户端。 4.3 代码隐藏页模型的事件驱动处理 在传统的ASP开发中,ASP的事件都是按照网页的顺序来处理的,一般情况下,ASP页面的事件都是从上到下处理事件,可以说ASP的开发是一个线性的处理模型。在用户的浏览操作中,每一次用户的操作都会导致页面重新被发送到服务器。因此,重复的操作必然导致客户端和服务器的往返过程,服务器必须重新创建页面,当创建页面后,服务器再按照原来的从上到下的顺序进行事件处理。 在ASP.NET中,通过使用模拟事件驱动模型的行为代替了ASP的线性处理模型。ASP.NET页框架模型隐式的为用户建立了事件和事件处理程序的关联。ASP.NET让用户可以为从浏览器传递的事件在服务器代码中设置相应的处理程序。假设某个用户正在浏览网站并与页面之间产生了某种交互,用户的操作就会引发事件,事件通过HTTP被传输到服务器。在服务器中,ASP.NET框架解释信息,并触发事件与之对应的处理程序。该程序可以是.aspx页面中的处理程序,也可以是开发者自定义的类库,或者COM组件等。事件驱动处理如图4-7所示。 图4-7 页面框架的事件驱动处理模型 上图则说明了当一个浏览者通过浏览器触发ASPX页面时,浏览器、服务器和服务器返回页的过程。 4.4 ASP.NET客户端状态 Web开发不像软件开发,Web应用实际上是没有状态的,这就说明Web应用程序不自动指示序列中的请求是否来自相同的浏览器或客户端,也无法判断浏览器是否一直在浏览一个页面或者一个站点,也无法判断用户执行了哪个操作并统计用户的喜好。 4.4.1 视图状态 从上面的章节中可以知道,当服务器每次的往返过程,都将销毁页面并重新创建新的页面。如果一个页面中的信息超出了页面的生命周期,那么这个页面中的相关信息就不存在了。如果注销了页面的信息,那么用户的一些信息可能就不存在了。 在ASP.NET中,网页包含视图状态来保存用户的信息,视图状态在页面发回到自身时,跨页过程存储和用户自己的页面的特定值,视图状态的优点如下所示。 q 不需要任何服务器资源。 q 在默认情况下,对控件启用状态的数据进行维护,不会被破坏。 q 视图状态的值经过哈希运算和压缩保护,安全性更高。 视图状态同样有一些缺点,缺点如下所示。 q 视图状态会影响性能,如果页面存储较大较多的值,则性能会有较大的影响。 q 在手机,移动终端上,可能无法保存视图状态中使用的值。 q 视图状态虽然安全性较高,但是还是有风险,如果直接查看页面代码,可以看到相应代码。 4.4.2 控件状态 ASP.NET中还提供了控件状态属性作为在服务器往返过程中存储自定义控件中的数据的方法。在页面控件中,如果有多个自定义控件使用多个不同的控件来显示不同的数据结构,为了让这些页面控件能够在在页面上协调的工作,则需要使用控件状态来保护控件,同时,控件状态是不能被关闭的。同样,控件状态也有它的优点,优点如下所示。 q 与视图状态相同的是,不需要任何服务器资源。 q 控件状态是不能被关闭的,提供了控件管理的更加可靠的方法。 q 控件状态具有通用性。 4.4.3 隐藏域 在ASP中,通常使用隐藏域保存页面的信息。在ASP.NET中,同样具有隐藏域来保存页面的信息,作为维护页面状态的一种形式,但是隐藏域的安全性并不高,最好不要在隐藏域保存过多的信息。隐藏域具有以下优点。 q 不需要任何服务器资源。 q 支持广泛,任何客户端都支持隐藏域。 q 实现简单,隐藏域属于HTML控件,无需像服务器控件那样有需要编程知识。 而隐藏域具有一些不足,如下所示。 q 具有较高的安全隐患。 q 存储结构简单。 q 同样,如果存储了较多的较大的值,则会导致性能问题。 q 如果隐藏域过多,则在某些客户端中被禁止。 q 隐藏域将数据存储在服务器上,而不存储在客户端。 注意:如果开发中,页面的隐藏域过多,这些隐藏域被存储在服务器。当客户端浏览页面的时候,会有一些防火墙扫描页面,以保证操作系统的安全,如果页面的隐藏域过多,那么这些防火墙可能会禁止页面的某些功能。 4.4.4 Cookie Cookie在客户端用户保存网站的少量的用户信息,服务器可以通过编程的方法获取用户信息,Cookie信息和页面请求通常一起发送到服务器,服务器对客户端传递过来的Cookie信息做处理。通常Cookie保存用户的登录状态、用户名等基本信息等等,在后面的章节会详细介绍使用ASP.NET操作Cookies。 4.4.5 客户端状态维护 虽然使用某些客户端状态并不使用服务器资源,但是这些状态都具有潜在的安全隐患,如Cookie。非法用户可以使用Cookie欺骗来攻击网站进行用户信息的获取,不过使用客户端状态能够使用客户端的资源从而提高服务器性能。使用客户端状态,虽然有安全隐患,但是具有良好的编程能力,以及基本的安全知识,能够较好的解决安全问题,同时也能够提高服务器性能。下面小结了一些客户端状态的优缺点。 q 视图状态:推荐当存储少量挥发到自身的页面的信息时使用。 q 控件状态:不需要任何服务器资源,控件状态是不能被关闭的,提供了控件管理的更加可靠和更通用的方法。 q 隐藏域:实现简单,但是在应用程序中会造成一些安全隐患。 q Cookie:实现简单,同样也能够简单的获取用户的信息,但是Cookie有大小的限制,不适宜存储大量的代码。 4.5 ASP.NET页面生命周期 ASP.NET页面运行时,也同类的对象一样,有自己的生命周期。ASP.NET页面运行时,ASP.NET页面将经历一个生命周期,在生命周期内,该页面将执行一系列的步骤,包括控件的初始化,控件的实例化,还原状态和维护状态等,以及通过IIS反馈给用户呈现成HTML。 ASP.NET页面生命周期是ASP.NET中非常重要的概念,了解ASP.NET页面的生命周期,就能够在合适的生命周期内编写代码,执行事务。同样,熟练掌握ASP.NET页面的生命周期,可以开发高效的自定义控件。ASP.NET生命周期通常情况下需要经历几个阶段,这几个阶段如下所示。 q 页请求:页请求发生在页生命周期开始之前。当用户请求一个页面,ASP.NET将确定是否需要分析或者编译该页面,或者是否可以在不运行页的情况下直接请求缓存响应客户端。 q 开始:发生了请求后,页面就进入了开始阶段。在该阶段,页面将确定请求是发回请求还是新的客户端请求,并设置IsPostBack属性。 q 初始化:在页面开始后,进入了初始化阶段。初始化期间,页面可以使用服务器控件,并为每个服务器控件进行初始化。 q 加载:页面加载控件。 q 验证:调用所有的验证程序控件的Vailidate方法,来设置各个验证程序控件和页的属性。 q 回发事件:如果是回发请求,则调用所有事件处理的程序。 q 呈现:在呈现期间,视图状态被保存并呈现到页。 q 卸载:完全呈现页面后,将页面发送到客户端并准备丢弃时,将调用卸载。 4.6 ASP.NET生命周期中的事件 在页面周期的每个阶段,页面将引发可运行用户代码进行处理事件。对于控件产生的事件,通过声明的方式执行代码,并将事件处理程序绑定到事件。不仅如此,事件还支持自动事件连接,最常用的就是Page_Load事件了,除了Page_Load事件以外,还有Page_Init等其他事件,本节将会介绍此类事件。 4.6.1 页面加载事件(Page_PreInit) 每当页面被发送到服务器时,页面就会重新被加载,启动Page_PreInit事件,执行Page_PreInit事件代码块。当需要对页面中的控件进行初始化时,则需要使用此类事件,示例代码如下所示。 protected void Page_PreInit(object sender, EventArgs e) //Page_PreInit事件 { Label1.Text = “OK”; //标签赋值 } 在上述代码中,当触发了Page_PreInit事件时,就会执行该事件的代码,上述代码将Lable1的初始文本值设置为“OK”。Page_PreInit事件能够让用户在页面处理中,能够让服务器加载时只执行一次而当网页被返回给客户端时不被执行。在Page_PreInit中可以使用IsPostBack来实现,当网页第一次加载时IsPostBack属性为false,当页面再次被加载时,IsPostBack属性将会被设置为true。IsPostBack属性的使用能够影响到应用程序的性能。 4.6.2 页面加载事件(Page_Init) Page_Init事件与Page_PreInit事件基本相同,区别在于Page_Init并不能保证完全加载各个控件。虽然在Page_Init事件中,依旧可以访问页面中的各个空间,但是当页面回送时,Page_Init依然执行所有的代码并且不能通过IsPostBack来执行某些代码,示例代码如下所示。 protected void Page_Init(object sender, EventArgs e) //Page_Init事件 { if (!IsPostBack) //判断是否第一次加载 { Label1.Text = “OK”; //将成功信息赋值给标签 } else { Label1.Text = “IsPostBack”; //将回传的值赋值给标签 } } 4.6.3 页面载入事件(Page_Load) 大多数初学者会认为Page_Load事件是当页面第一次访问触发的事件,其实不然,在ASP.NET页生命周期内,Page_Load远远不是第一次触发的事件,通常情况下,ASP.NET事件顺序如下所示。 q 1. Page_Init()。 q 2. Load ViewState。 q 3. Load Postback data。 q 4. Page_Load()。 q 5. Handle control events。 q 6. Page_PreRender()。 q 7. Page_Render()。 q 8. Unload event。 q 9. Dispose method called。 Page_Load事件是在网页加载的时候一定会被执行的事件。在Page_Load事件中,一般都需要使用IsPostBack来判断用户是否进行了操作,因为IsPostBack指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) //Page_Load事件 { if (!IsPostBack) { Label1.Text = “OK”; //第一次执行的代码块 } else { Label1.Text = “IsPostBack”; //如果用户提交表单等 } } 上述代码使用了Page_Load事件,在页面被创建时,系统会自动在代码隐藏页模型的页面中增加此方法。当用户执行了操作,页面响应了客户端回发,则IsPostBack为true,于是执行else中的操作。 4.6.4 页面卸载事件(Page_Unload) 在页面被执行完毕后,可以通过Page_Unload事件用来执行页面卸载时的清除工作,当页面被卸载时,执行此事件。以下情况会触发Page_Unload事件。 q 页面被关闭。 q 数据库连接被关闭。 q 对象被关闭。 q 完成日志记录或者其他的程序请求。 4.6.5 页面指令 页面指令用来通知编译器在编译页面时做出的特殊处理。当编译器处理ASP.NET应用程序时,可以通过这些特殊指令要求编译器做特殊处理,例如缓存、使用命名空间等。当需要执行页面指令时,通常的做法是将页面指令包括在文件的头部,示例代码如下所示。 <%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Default.aspx.cs” Inherits=“MyWeb._Default” %> 上述代码中,就使用了@Page页面指令来定义ASP.NET页面分析器和编译器使用的特定页的属性。当代码隐藏页模型的页面被创建时,系统会自动增加@Page页面指令。 ASP.NET页面支持多个页面指令,常用的页面指令如下所示。 q @ Page:定义ASP.NET页分析器和编译器使用的页特定(.aspx文件)属性,可以编写为<%@ Page attribute=“value” [attribute=“value”…]%>。 q @ Control:定义ASP.NET页分析器和编译器使用的用户控件(.ascx文件)特定的属性。该指令只能为用户控件配置。可以编写为<%@ Control attribute=“value” [attribute=“value”…]%>。 q @ Import:将命名空间显示导入到页中,使所导入的命名空间的所有类和接口可用户该页。导入的命名空间可以是.NET Framework类库或用户定义的命名空间的一部分。可以编写为<%@ Import namespace=“value” %>。 q @ Implements:提示当前页或用户控件实现制定的.NET Framework接口。可以编写为<%@ Implements interface=“ValidInterfaceName” %>。 q @ Reference:以声明的方式指示,应该根据在其中声明此指令的页对另一个用户控件或页源文件进行动态编译和链接。可以编写为<%@ Reference page | control=“pathtofile” %>。 q @ Output Cache:以声明的方式空间ASP.NET页或页中包含的用户控件的输出缓存策略。可以编写为<%@ Output Cache Duration=“#ofseconds” Location=“Any | Client | Downstream | Server | None” Shared=“True |False” VaryByControl=“controlname” VaryByCustom=“browser | customstring” VaryByHeader=“headers” VaryByParam=“parametername” %> q @ Assembly:在编译过程中将程序集链接到当前页,以使程序集的所有类和接口都可用在该页上。可以编写为<%@ Assembly Name=“assemblyname” %>或<%@ Assembly Src=“pathname” %>的方式。 q @ Register:将别名与命名空间以及类名关联起来,以便在自定义服务器控件语法中使用简明的表示法。可以编写为<%@ Register tagprefix=“ tagprefix” Namespace=“namepace” Assembly=“assembly” %>或<%@ Register tagprefix=“ tagprefix” Tagname=“tagname” Src=“pathname” %>的方式。 4.7 ASP.NET网站文件类型 在ASP.NET中包含诸多的文件类型,这些类型的文件由ASP.NET支持和管理,而除了这些文件以外,其他的文件都由IIS托管。使用VS2008能够创建大部分可以使用ASP.NET托管运行的程序。同时,使用应用程序映射可以将文件类型映射到应用程序。当需要伪静态时,很可能需要将.html后缀托管到IIS中的应用扩展,因为默认情况下ASP.NET不会处理HTML的操作。 技巧:现在的网站构架中,生成静态是一种降低网站压力的一种很好的解决方案。在某些情况下,服务器可能需要伪静态支持,就是将.aspx页面后缀显式成.html后缀,让搜索引擎能够更好的搜录。 1.ASP.NET管理的文件类型 ASP.NET管理的文件类型能够在ASP.NET应用程序中被ASP.NET应用程序的不同模块进行访问和调用,这些文件可能是用户能够直接访问的,也有可能是用户无法直接访问的。ASP.NET管理的文件类型如表4-1所示。 表4-1 ASP.NET管理的文件类型 文件类型 保存位置 描述 .asax 根目录。 Global.asax 文件。包含 HttpApplication 对象的派生代码,用于重新展示 Application 对象。 .ascx 根目录或子目录。 可重用的自定义 Web 控件。 .ashx 根目录或子目录。 处理器文件。包含实现 IHttpHandler 接口的代码,用于处理输入请求。 .asmx 根目录或子目录。 XML Web Services 文件。包含由 SOAP 提供给其他 Web 应用的类对象和功能。 .aspx 根目录或子目录。 ASP.NET Web 窗体。包含 Web 控件和其他业务逻辑。 .axd 根目录。 跟踪视图文件。通常是 Trace.axd。 .browser App_Browsers 目录。 浏览器定义文件。用于识别客户端浏览器的可用特征。 .cd 根目录或子目录。 类图文件。 .compile Bin 目录。 定位于适当汇编集中的预编译文件。可执行文件(.aspx,.ascx,.master,theme)预编译后放在 Bin 目录。 .config 根目录或子目录。 Web.config 配置文件。包含用于配置 ASP.NET 若干特征的 XML 元素集。 .cs,.jsl,vb App_Code 目录。有些是 ASP.NET 的代码分离文件,位于与 Web 页面相同的目录。 运行时被编译的类对象源代码。类对象可以是 HTTP 模块,HTTP 处理器,或 ASP.NET 页面的代码分离文件。 .csproj,vbproj,vjsproj Visual Studio 工程目录。 Visual Studio 客户工程文件。 .disco,.vsdisco App_WebReferences 目录。 XML Web Services Discovery 文件。用于定位可用 Web Services。 .dsdgm,dsprototype 根目录或子目录。 分布式服务图表(DSD)文件。可添加到 Visual Studio 方案中,为反向引擎提供消耗 Web Services 时的交互性图表。 .dll Bin 目录。 已编译类库文件。作为替代,可将类对象源代码保存到 App_Code 目录。 .licx,.webinfo 根目录或子目录。 许可协议文件。许可协议有助于保护控件开发者的知识产权,并对控件用户的使用权进行验证。 .master 根目录或子目录。 模板文件定义 Web 页面的统一布局,并在其他页面中得到引用。 .mdb,.ldb App_Data 目录。 Access 数据库文件。 .mdf App_Data 目录。 SQLServer 数据库文件。 .msgx,.svc 根目录或子目录。 Indigo Messaging Framework(MFx)服务文件。 .rem 根目录或子目录。 远程处理器文件。 .resources App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .resx App_GlobalResources 或 App_LocalResources 目录。 资源文件。包含图像,本地化文本,或其他数据的资源引用串。 .sdm,.sdmDocument 根目录或子目录。 系统定义模型(SDM)文件。 .sitemap 根目录。 网站地图文件。包含网站的结构。ASP.NET 通过默认的网站地图提供者,简化导航控件对网站地图文件的使用。 .skin App_Themes 目录。 皮肤定义文件。用于确定显示格式。 .sln Visual Web Developer 工程目录。 Visual Web Developer 工程的项目文件。 .soap 根目录或子目录。 SOAP 扩展文件。 注意:ASP.NET 管理的文件类型映射到 IIS 的 Aspnet_isapi.dll。 2.IIS 管理的文件类型 在ASP.NET应用程序中,有些动态的文件如asp文件就不被ASP.NET应用程序框架管理,这些文件由IIS进行管理,由IIS管理的文件类型如表4-2所示。 表4-2 IIS管理的文件类型 文件类型 保存位置 描述 .asa 根目录。 Global.asa 文件。包含 ASP 会话对象或应用程序对象生命周期中的各种事件处理。 .asp 根目录或子目录. ASP Web 页面。包含 @ 指令和使用 ASP 内建对象的脚本代码。 .cdx App_Data 目录. Visual FoxPro 的混合索引文件。 .cer 根目录或子目录。 证明文件。用于对网站的授权。 .idc 根目录或子目录。 Internet Database Connector(IDC)文件。被映射到 httpodbc.dll。 注意:由于无法为数据库连接提供足够的安全性,IDC 将不再被继续使用。IIS 6.0 是最后一个支持 IDC 的版本。 .shtm,.shtml,.stm 根目录或子目录。 包含文件。被映射到 ssinc.dll。 注意:IIS管理的文件类型被映射到IIS的asp.dll 3.静态文件类型 IIS仅提供已注册MIME类型的静态文件服务,注册信息保存在Mime Map IIS元数据库中。如果某种文件类型已经映射到指定应用程序,在不需要作为静态文件的情况之下,无需再在MIME类型列表中进行包含。默认的静态文件类型如表4-3所示。 表4-3 静态文件类型 文件类型 保存位置 描述 .css 根目录或子目录,以及 App_Themes 目录。 样式文件。用于确定 HTML 元素的显示格式。 .htm,.html 根目录或子目录。 静态网页文件。由 HTML 代码编写。 注意:虽然ASP.NET的代码页面也能够手动添加到MIME类型列表中,但是这样操作浏览者就能够看到页面源代码,从而暴露ASP.NET页面源代码,相对于服务器而言是非常不安全的。 4.8 小结 本章介绍了ASP.NET页面生命周期,以及ASP.NET页面的几种模型。ASP.NET页面生命周期是ASP.NET中非常重要的概念,熟练掌握ASP.NET生命周期能对ASP.NET开发,自定义控件开发起到促进作用。本章还介绍了: q 代码隐藏页模型的解释过程。 q 代码隐藏页模型的事件驱动处理。 q ASP.NET网页的客户端状态。 q ASP.NET页面生命周期。 q ASP.NET生命周期中的事件。 q ASP.NET 网站文件类型。 上面的章节都分开的讲解了ASP.NET运行中的一些基本机制,在了解了这些基本运行机制后,就能够在.NET框架下做ASP.NET开发了。虽然这些都是基本概念,但是在今后的开发中,会起到非常重要的作用。
2.ASP.NET.2.0.高级编程(第4版) [1/7] 原书名: Professional ASP.NET 2.0 原出版社: Wrox 作者:(美)Bill Evjen, Scott Hanselman, Farhan Muhammad [同作者作品] [作译者介绍] 译者: 李敏波[同译者作品] 出版社:清华大学出版社 ISBN:7302139067 上架时间:2006-11-16 出版日期:2006 年11月 开本:185×260 页码:1090 版次:4-1 内容简介回到顶部↑本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP.NET初级程序员以及准备迁移到ASP.NET 2.0的编程老手。该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。. ASP.NET允许Web站点为每个访问者显示独一无二的页面,而不是显示相同的静态HTML页面。ASP.NET 2.0的发布,使Web应用程序的开发又前进了一大步。这个新版本增加了大量的新功能,减少了编写常见应用程序所需的代码量。 ASP.NET 2.0新增了50多个新服务器控件,类的数量也翻了一倍,其他许多方面也有很大的变化。本书介绍了ASP.NET 2.0中的每个新增特性和功能,以便读者把这些新技术应用于实践。.. 本书主要内容 ● 服务器控件的概念及其在ASP.NET开发中的主导作用 ● 使用新的Master页面特性创建模板化的ASP.NET页面 ● 调试和处理错误的技术 ● 提取、创建、处理和存储XML的各种框架 ● 打包和部署ASP.NET应用程序的方法 ● 快速、逻辑地检索、更新和删除数据 本书读者对象 本书适合于有一些ASP.NET基础知识的学习者以及准备迁移到ASP.NET 2.0的有经验的程序员和开发人员。 目录回到顶部↑ 第1章 ASP.NET 2.0概述 1 1.1 简史 1 1.2 ASP.NET 2.0的目标 2 1.2.1 开发人员的效率 3 1.2.2 管理 5 1.2.3 性能和可伸缩性 8 1.3 ASP.NET 2.0的其他新特性 8 1.3.1 新的开发人员体系结构 8 1.3.2 新的编译系统 12 1.3.3 页面框架的新增内容 13 1.3.4 访问数据的新对象 15 1.3.5 新的服务器控件 15 1.4 建立ASP.NET 2.0页面的新IDE 16 1.5 小结 17 第2章 Visual Studio 2005 19 2.1 启动页面 19 2.2 文档窗口 20 2.2.1 文档窗口中的视图 20 2.2.2 标记导航器 21 .2.2.3 页面标签 22 2.2.4 代码改变状态的通知 23 2.2.5 错误通知和辅助 23 2.3 工具箱 25 2.4 Solution Explorer 26 2.5 Server Explorer 28 2.6 Properties窗口 28 2.7 丢失的窗口 29 2.8 其他常见的Visual Studio操作 29 2.8.1 创建新项目 29 2.8.2 引用其他对象 30 2.8.3 使用智能标记 32 2.8.4 保存和导入Visual Studio设置 32 2.8.5 验证HTML 34 2.8.6 团队的合作 36 2.8.7 使用代码片断 36 2.9 小结 38 第3章 应用程序和页面框架 39 3.1 应用程序的位置选项 39 3.1.1 内置的Web服务器 39 3.1.2 IIS 40 3.1.3 FTP 41 3.1.4 Web站点需要FrontPage Extensions 42 3.2 ASP.NET页面结构选项 43 3.2.1 内置编码 44 3.2.2 新的后台编码模型 46 3.3 ASP.NET 2.0的Page指令 48 3.3.1 @Page 49 3.3.2 @Master 51 3.3.3 @Control 52 3.3.4 @Import 53 3.3.5 @Implements 54 3.3.6 @Register 55 3.3.7 @Assembly 55 3.3.8 @PreviousPageType 56 3.3.9 @MasterType 56 3.3.10 @OutputCache 56 3.3.11 @Reference 57 3.4 ASP.NET页面的事件
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP.NET初级程序员以及准备迁移到ASP.NET 2.0的编程老手。该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。 目录 第1章 ASP.NET 2.0概述1 1.1 简史1 1.2 ASP.NET 2.0的目标2 1.2.1 开发人员的效率3 1.2.2 管理5 1.2.3 性能和可伸缩性8 1.3 ASP.NET 2.0的其他新特性8 1.3.1 新的开发人员体系结构8 1.3.2 新的编译系统12 1.3.3 页面框架的新增内容13 1.3.4 访问数据的新对象15 1.3.5 新的服务器控件15 1.4 建立ASP.NET 2.0   页面的新IDE16 1.5 小结17 第2章 Visual Studio 200519 2.1 启动页面19 2.2 文档窗口20 2.2.1 文档窗口中的视图20 2.2.2 标记导航器21 2.2.3 页面标签22 2.2.4 代码改变状态的通知23 2.2.5 错误通知和辅助23 2.3 工具箱25 2.4 Solution Explorer26 2.5 Server Explorer28 2.6 Properties窗口28 2.7 丢失的窗口29 2.8 其他常见的Visual Studio操作29 2.8.1 创建新项目29 2.8.2 引用其他对象30 2.8.3 使用智能标记32 2.8.4 保存和导入    Visual Studio设置32 2.8.5 验证HTML34 2.8.6 团队的合作36 2.8.7 使用代码片断36 2.9 小结38 第3章 应用程序和页面框架39 3.1 应用程序的位置选项39 3.1.1 内置的Web服务器39 3.1.2 IIS40 3.1.3 FTP41 3.1.4 Web站点需要    FrontPage Extensions42 3.2 ASP.NET页面结构选项43 3.2.1 内置编码44 3.2.2 新的后台编码模型46 3.3 ASP.NET 2.0的Page指令48 3.3.1 @Page49 3.3.2 @Master51 3.3.3 @Control52 3.3.4 @Import53 3.3.5 @Implements54 3.3.6 @Register55 3.3.7 @Assembly55 3.3.8 @PreviousPageType56 3.3.9 @MasterType56 3.3.10 @OutputCache56 3.3.11 @Reference57 3.4 ASP.NET页面的事件57 3.5 处理回送59 3.6 跨页面的传送59 3.7 ASP.NET应用程序文件夹66 3.7.1 \\App_Code文件夹66 3.7.2 \\App_Data文件夹70 3.7.3 \\App_Themes文件夹70 3.7.4 \\App_GlobalResources    文件夹71 3.7.5 \\App_LocalResources    文件夹74 3.7.6 \\App_WebReferences    文件夹74 3.7.7 \\App_Browsers文件夹74 3.8 编译75 3.9 Global.asax78 3.10 小结79 第4章 ASP.NET服务器控件     和客户端脚本81 4.1 ASP.NET服务器控件81 4.1.1 服务器控件的类型82 4.1.2 用服务器控件建立页面83 4.1.3 处理服务器控件的事件84 4.2 给服务器控件应用样式87 4.2.1 控件的常见属性87 4.2.2 使用层叠样式表    改变样式88 4.3 HTML服务器控件93 4.3.1 HtmlControl基类95 4.3.2 HtmlContainerControl类96 4.3.3 所有的HTML类96 4.3.4 使用HtmlGeneric    Control类97 4.4 通过JavaScript处理页面和   服务器控件98 4.4.1 使用Page.ClientScript.    RegisterClient    ScriptBlock100 4.4.2 使用Page.ClientScript.  18.2.2 基于Windows的      身份验证模式615  18.2.3 基于窗体的身份验证622  18.2.4 Passport身份验证631 18.3 验证特定的文件文件夹632 18.4 编程授权632  18.4.1 使用User.Identity633  18.4.2 使用User.IsInRole()634  18.4.3 用WindowsIdentity      显示更多信息635 18.5 身份和模拟637 18.6 通过IIS进行保护640  18.6.1 IP地址和域名限制640  18.6.2 使用文件扩展名641  18.6.3 使用新的     ASP.NET MMC插件643 18.7 小结644 第19章 状态管理645 19.1 如何选择645 19.2 ASP.NET 2.0中的    Session对象648  19.2.1 会话和事件模型648  19.2.2 配置会话状态的管理649  19.2.3 进程中的会话状态650  19.2.4 进程外的会话状态657  19.2.5 SQL支持的会话状态662  19.2.6 用其他提供程序      扩展会话状态664  19.2.7 无Cookie的会话状态666  19.2.8 选择维护状态的      正确方式667 19.3 Application对象667 19.4 查询字符串668 19.5 Cookie668 19.6 回送和跨页面的回送669 19.7 隐藏的字段、ViewState    和ControlState671 19.8 为短时间状态存储应用    HttpContext.Current.Items675 19.9 小结676 第20章 高速缓存679 20.1 高速缓存679  20.1.1 输出高速缓存679  20.1.2 部分页面(UserControl) 的高速缓存682  20.1.3 Post-Cache Substitution683  20.1.4 HttpCachePolicy和 客户端高速缓存685 20.2 编程高速缓存687  20.2.1 使用Cache对象 高速缓存数据687  20.2.2 高速缓存依赖性688 20.3 使用SQL Server高速    缓存依赖性694  20.3.1 使数据库支持SQL       Server高速缓存       禁用功能695  20.3.2 使表支持SQL Server 高速缓存禁用功能695  20.3.3 对SQL Server的影响695  20.3.4 查看支持SQL       高速缓存禁用功能的表696  20.3.5 使表不支持       SQL Server高速       缓存禁用功能697  20.3.6 使数据库不支持       SQL Server高速       缓存禁用功能697  20.3.7 SQL Server 2005       高速缓存禁用功能698 20.4 配置ASP.NET应用程序699 20.5 测试SQL Server高速缓存 禁用功能700  20.5.1 给页面添加多个表702  20.5.2 给SQL Server 高速缓存依赖性和 Request对象建立关联702  20.5.3 给SQL Server 高速缓存依赖性 和Cache对象建立关联703 20.6 小结706 第21章 调试和错误处理技术709 21.1 设计期间的支持709  21.1.1 语法通知709  21.1.2 Immediate和 Command窗口711  21.1.3 任务列表712 21.2 跟踪713  21.2.1 System.Diagnostics. Trace和ASP.NET 的Page.Trace713  21.2.2 页面级的跟踪713  21.2.3 应用程序的跟踪714  21.2.4 查看跟踪数据714  21.2.5 在组件中跟踪717  21.2.6 跟踪的传送718  21.2.7 TraceListener719  21.2.8 诊断选项723 21.2.9 Web事件724 21.3 调试726 21.3.1 需要的内容726 21.3.2 IIS和ASP.NET      开发服务器727 21.3.3 启动调试会话728 21.3.4 有助于调试的新工具731 21.3.5 SQL存储过程的调试734 21.4 异常和错误处理735 21.4.1 处理页面上的异常735 21.4.2 处理应用程序异常736 21.4.3 HTTP状态码737 21.5 小结738 第22章 文件I/O和流739 22.1 使用驱动器、目录和文件739 22.1.1 DriveInfo类739 22.1.2 Directory和      DirectoryInfo类743 22.1.3 File和FileInfo类749 22.1.4 使用路径753 22.1.5 文件和目录的属性、      特性和访问控制列表757 22.2 读写文件764 22.2.1 流764 22.2.2 Reader和Writer769 22.2.3 压缩流773 22.3 处理串行端口779 22.4 网络通信779 22.4.1 WebRequest和      WebResponse779 22.4.2 发送邮件786 22.5 小结787 第23章 用户控件、服务器控件、      模块和HttpHandler789 23.1 用户控件789 23.1.1 创建用户控件790 23.1.2 与用户控件交互792 23.2 服务器控件794 23.2.1 项目的建立794 23.2.2 控件的属性798 23.2.3 控件的显示799 23.2.4 添加标记属性802 23.2.5 给HTML设置样式804 23.2.6 主题和Skin806 23.2.7 添加客户端特性807 23.2.8 检测和响应      浏览器功能816 23.2.9 使用ViewState819 23.2.10 启动PostBack事件824 23.2.11 处理回送数据828 23.2.12 复合控件830 23.2.13 模板化控件832 23.2.14 在设计期间创建控件840 23.3 模块和处理程序858 23.3.1 HttpModule859 23.3.2 HttpHandler869 23.4 小结875 第24章 使用业务对象877 24.1 使用ASP.NET 2.0    中的业务对象877 24.1.1 创建预编译的.NET     业务对象877 24.1.2 在ASP.NET应用     程序中使用预编译     的业务对象880 24.2 COM交互操作性:在.NET 中使用COM881 24.2.1 运行库可     调用包装(RCW)881 24.2.2 在ASP.NET代码中     使用COM对象882 24.2.3 错误处理887 24.2.4 用.NET应用程序     部署COM组件890 24.3 在未受管制的代码中    使用.NET891 24.3.1 COM可调用包装(CCW)892 24.3.2 在COM对象中     使用.NET组件893 24.3.3 早期绑定和后期绑定897 24.3.4 错误处理898 24.3.5 用COM应用程序     部署.NET组件899 24.4 小结901 第25章 移动开发903 25.1 创建新的ASP.NET移动 Web应用程序903 25.2 使用控件容器907 25.2.1 Form控件907 25.2.2 Panel控件908 25.3 使用样式表908 25.4 使用ASP.NET移动控件910 25.4.1 AdRotator控件910 25.4.2 Calendar控件912 25.4.3 Label控件915 25.4.4 TextBox控件915 25.4.5 TextView控件917 25.4.6 Command控件918 25.4.7 Image控件918 25.4.8 PhoneCall控件919 25.4.9 Link控件921 25.4.10 List控件922 25.4.11 ObjectList控件925 25.4.12 SelectionList控件926 25.5 使用验证控件930 25.6 在移动Web窗体之间导航932 25.7 移动Web用户控件932 25.8 使用模拟器936 25.9 设备过滤器936 25.10 ASP.NET移动应用程序    中的状态管理938 25.10.1 移动Web控件中    的ViewState939 25.10.2 管理会话状态940 25.10.3 隐藏字段940 25.11 小结942 第26章 建立和使用      XML Web服务943 26.1 不同系统之间的通信943 26.2 建立一个简单的    XML Web服务945 26.2.1 WebService页面指令946 26.2.2 查看Web服务的    基类文件946 26.2.3 把定制的数据集    显示为SOAP948 26.2.4 XML Web服务接口950 26.3 使用简单的XML Web服务953 26.3.1 添加Web引用953 26.3.2 在客户应用程序中    调用Web服务955 26.4 Web服务的传输协议957 26.4.1 HTTP-GET959 26.4.2 HTTP-POST961 26.4.3 SOAP962 26.5 WebMethod的重载962 26.6 高速缓存Web服务的响应965 26.7 SOAP标题966 26.7.1 用SOAP标题建立    Web服务967 26.7.2 通过SOAP标题    使用Web服务969 26.7.3 使用SOAP 1.2    请求Web服务971 26.8 异步使用Web服务973 26.9 小结976 第27章 配置977 27.1 配置概述977 27.1.1 服务器配置文件978 27.1.2 应用程序配置文件979 27.1.3 配置的应用979 27.1.4 检测配置文件的变化980 27.1.5 配置文件的格式980 27.2 公共配置设置981 27.2.1 连接字符串981 27.2.2 配置会话状态982 27.2.3 编译配置985 27.2.4 浏览器的功能987 27.2.5 定制错误989 27.2.6 身份验证990 27.2.7 匿名身份992 27.2.8 授权993 27.2.9 锁定配置设置995 27.2.10 ASP.NET页面配置995 27.2.11 include文件997 27.2.12 配置ASP.NET     运行时设置997 27.2.13 配置ASP.NET     工作进程1001 27.2.14 存储与应用程序     相关的设置1003 27.2.15 配置文件的编程1004 27.2.16 保护配置设置1011 27.2.17 编辑配置文件1011 27.3 小结1012 第28章 管理1013 28.1 Web站点管理工具1013 28.1.1 Home选项卡1014 28.1.2 Security选项卡1015 28.1.3 Application选项卡1024 28.1.4 Provider选项卡1026 28.2 MMC ASP.NET插件1028 28.2.1 General选项卡1029 28.2.2 Custom Errors选项卡1031 28.2.3 Authorization选项卡1031 28.2.4 Authentication选项卡1033 28.2.5 Application选项卡1034 28.2.6 State Management    选项卡1035 28.2.7 Locations选项卡1036 28.3 小结1036 第29章 打包和部署ASP.NET    应用程序1037 29.1 部署各个部分1037 29.2 部署之前的准备1038 29.3 部署Web应用程序的方法1038 29.3.1 使用XCopy1039 29.3.2 使用VS Copy    Web Site选项1041 29.3.3 部署预编译的    Web应用程序1044 29.3.4 建立安装程序1046 29.4 安装程序的选项1053 29.4.1 使用部署项目的属性1053 29.4.2 File System编辑器1056 29.4.3 Registry编辑器1059 29.4.4 File Types编辑器1061 29.4.5 User Interface编辑器1061 29.4.6 Custom Actions编辑器1063 29.4.7 Launch Conditions    编辑器1064 29.5 小结1065 附录A Visual Basic 8.0和 C# 2.0语言的改进1067 A.1 概述1067 A.2 泛型1068 A.2.1 泛型集合1068 A.2.2 泛型方法1072 A.3 迭代器1074 A.4 匿名方法1075 A.5 运算符重载1077 A.6 全局命名空间限定符1077 A.7 部分类1078 A.8 Visual Basic XML文档1080 A.9 静态类1081 A.10 属性访问器1081 A.11 无符号类型1082 A.12 默认实例1083 A.13 Visual Basic的新关键字1083 A.13.1 Continue1083 A.13.2 Using1085 A.13.3 My1085 A.13.4 IsNot1086 A.13.5 TryCast1087 附录B ASP.NET在线资源1089 B.1 作者的Blog1089 B.2 ASP.NET有影响的Blog1089 B.3 Web站点1089    RegisterStartupScript101 4.4.3 使用Page.ClientScript.    RegisterClient    ScriptInclude103 4.5 客户端回调103 4.5.1 比较典型的回送和回调104 4.5.2 使用回调功能:    一种简单的方法105 4.5.3 使用带参数的回调功能110 4.6 小结113 第5章 ASP.NET Web服务器控件115 5.1 Web服务器控件概述115 5.2 Label服务器控件116 5.3 Literal服务器控件118 5.4 TextBox服务器控件119 5.4.1 使用Focus()方法120 5.4.2 使用AutoPostBack120 5.4.3 使用AutoCompleteType122 5.5 Button服务器控件122 5.5.1 CausesValidation属性123 5.5.2 CommandName属性123 5.5.3 使用客户端JavaScript    的按钮124 5.6 LinkButton服务器控件126 5.7 ImageButton服务器控件126 5.8 HyperLink服务器控件128 5.9 DropDownList服务器控件128 5.10 从集合中可视化地 删除条目131 5.11 ListBox服务器控件132  5.11.1 允许用户选择多项133  5.11.2 使用ListBox控件的例子133  5.11.3 给集合添加条目136 5.12 CheckBox服务器控件136  5.12.1 确定复选框是否被选中138  5.12.2 给复选框赋值138  5.12.3 排列复选框的文本138 5.13 CheckBoxList服务器控件139 5.14 RadioButton服务器控件141 5.15 RadioButtonList服务器控件143 5.16 Image服务器控件145 5.17 Table服务器控件146 5.18 Calendar服务器控件148 5.18.1 从Calendar控件中     选择一个日期149 5.18.2 从日历中选择要     输出的日期格式150 5.18.3 选择日期、星期或月份150 5.18.4 使用日期范围151 5.18.5 修改日历的样式     和操作方式153 5.19 AdRotator服务器控件156 5.20 Xml服务器控件158 5.21 Panel服务器控件158 5.22 PlaceHolder服务器控件160 5.23 小结161 第6章 ASP.NET 2.0的Web     服务器控件163 6.1 BulletedList服务器控件163 6.2 HiddenField服务器控件168 6.3 FileUpload服务器控件170 6.3.1 使用FileUpload控件    上传文件170 6.3.2 指定正确的ASP.NET    权限给上传文件172 6.3.3 理解文件大小的限制173 6.3.4 把上传的文件放在    Stream对象中174 6.3.5 把文件内容从Stream    对象移动到Byte数组中175 6.4 MultiView和   View服务器控件175 6.5 Wizard服务器控件179 6.5.1 定制边栏导航181 6.5.2 AllowReturn属性182 6.5.3 使用StepType属性182 6.5.4 给Wizard控件添加标题183 6.5.5 使用向导的导航系统183 6.5.6 使用Wizard控件的事件184 6.5.7 使用Wizard控件显示    窗体元素186 6.6 ImageMap服务器控件189 6.7 小结191 第7章 验证服务器控件193 7.1 有效性验证193 7.2 客户端和服务器端的验证194 7.3 ASP.NET验证服务器控件195 7.3.1 验证原因196 7.3.2 RequiredFieldValidator    服务器控件196 7.3.3 CompareValidator    服务器控件201 7.3.4 RangeValidator    服务器控件204 7.3.5 RegularExpression    Validator服务器控件208 7.3.6 CustomValidator    服务器控件209 7.3.7 ValidationSummary    服务器控件214 7.4 关闭客户端验证功能217 7.5 为错误通知使用图像和声音218 7.6 使用验证组219 7.7 小结223 第8章 使用Master页面225 8.1 需要Master页面的原因225 8.2 Master页面基础227 8.3 编写Master页面228 8.4 编写内容页面231 8.4.1 混合页面类型和语言234 8.4.2 指定要使用的Master    页面235 8.4.3 使用页面标题236 8.4.4 使用Master页面中的    控件和属性237 8.5 在Master页面中   指定默认内容244 8.6 编程指定Master页面246 8.7 Master页面的嵌套246 8.8 容器特定的Master页面249 8.9 事件的触发顺序251 8.10 高速缓存Master页面251 8.11 小结252 第9章 主题和Skin253 9.1 使用ASP.NET 2.0中的主题253 9.1.1 给单个ASP.NET    页面应用主题253 9.1.2 把主题应用于    整个应用程序255 9.1.3 删除服务器控件中    的主题255 9.1.4 删除Web页面上    的主题特性256 9.1.5 StyleSheetTheme属性256 9.2 创建自己的主题257 9.2.1 创建正确的文件夹结构257 9.2.2 创建Skin258 9.2.3 在主题中包含CSS文件260 9.2.4 使主题包含图像263 9.3 定义多个Skin选项266 9.4 编程使用主题267 9.4.1 编程指定页面的主题267 9.4.2 编程指定控件的SkinID268 9.5 主题和定制控件268 9.6 小结271 第10章 集合和列表273 10.1 数组273  10.1.1 重新设置 数组的大小276  10.1.2 查找数组中的对象276  10.1.3 给数组中的 对象排序280 10.2 System.Collections 命名空间281  10.2.1 ArrayList281  10.2.2 IEnumerable和     IEnumerator284  10.2.3 ICollection285  10.2.4 Lists和IList286  10.2.5 字典和IDictionary287  10.2.6 散列表288  10.2.7 SortedList292  10.2.8 Queue和Stack292 10.3 专用集合295  10.3.1 HybridDictionary和      ListDictionary295  10.3.2 StringCollection、      StringDictionary和      NameValueCollection295  10.3.3 BitArray295 10.4 Microsoft.VisualBasic.    Collection类296 10.5 强类型化的集合296 10.6 System.Collections.Generics299  10.6.1 泛型的定义299  10.6.2 泛型列表300  10.6.3 泛型字典302  10.6.4 其他泛型集合303 10.7 集合从.NET 1.1到.NET 2.0 的变化303 10.8 集合和列表总结303 10.9 小结306 第11章 ASP.NET 2.0中的数据绑定307 11.1 数据源控件307  11.1.1 SqlDataSource控件310  11.1.2 XmlDataSource控件316  11.1.3 ObjectDataSource      控件316  11.1.4 SiteMapDataSource      控件320 11.2 配置数据源控件的高速缓存321 11.3 存储连接信息321 11.4 使用绑定的列表控件和 数据源控件324  11.4.1 GridView325  11.4.2 编辑GridView      中的数据行333  11.4.3 删除GridView数据337  11.4.4 DetailsView339  11.4.5 使用DetailsView      插入、更新和删除数据345  11.4.6 FormView控件347 11.5 其他数据绑定控件351  11.5.1 DropDownList、      ListBox、      RadioButtonList      和CheckBoxList351  11.5.2 TreeView控件352  11.5.3 Ad Rotator控件352  11.5.4 Menu353 11.6 内置数据绑定语法353  11.6.1 DataBinder语法      的变化354  11.6.2 XML数据绑定器355 11.7 小结355 第12章 使用ADO.NET管理数据357 12.1 ADO.NET的基本功能357  12.1.1 ADO.NET的      基本命名空间和类357  12.1.2 使用Connection对象358  12.1.3 使用Command对象359  12.1.4 使用DataReader对象360  12.1.5 使用数据适配器362  12.1.6 使用参数365  12.1.7 DataSet和DataTable368 12.2 ADO.NET的新增功能371  12.2.1 从各种数据源中      批量加载数据372  12.2.2 批处理多个更新381  12.2.3 多个活动的      结果集(MARS)388  12.2.4 命令的异步执行394  12.2.5 异步连接415 12.3 小结416 第13章 使用XML417 13.1 XML基础417  13.1.1 XML InfoSet419  13.1.2 XSD/XML模式定义420  13.1.3 在Visual Studio .NET      2005中编辑XML和      XML模式422 13.2 XmlReader和XmlWriter425  13.2.1 使用模式和      XmlTextReader427  13.2.2 包含NameTable优化429  13.2.3 从XML中提取      .NET CLR类型431  13.2.4 ReadSubtree和      XmlSerialization433  13.2.5 用XmlWriter创建XML435  13.2.6 2.0版本中XmlReader      和XmlWriter的改进437 13.3 XmlDocument和 XPathDocument438  13.3.1 DOM的问题438  13.3.2 XPath、XPath      Document和      XmlDocument438 13.4 DataSet442  13.4.1 把DataSet保存到      XML中442  13.4.2 XmlDataDocument443 13.5 XmlDataSource控件445 13.6 XSLT449  13.6.1 XslCompiled      Transform450  13.6.2 XML Web      服务器控件452  13.6.3 XSLT调试454 13.7 数据库和XML454  13.7.1 FOR XML AUTO子句455  13.7.2 SQL Server Yukon      2005和XML数据类型459 13.8 小结459 第14章 站点导航461 14.1 基于XML的站点地图461 14.2 SiteMapPath 服务器控件463  14.2.1 PathSeparator属性465  14.2.2 PathDirection 属性467  14.2.3 ParentLevels      Displayed属性467  14.2.4 ShowToolTips属性468  14.2.5 SiteMapPath 控件      的子元素469 14.3 TreeView服务器控件469  14.3.1 标识TreeView控件      的内置样式471  14.3.2 TreeView控件      的各个部分472  14.3.3 在XML文件中      绑定TreeView控件472  14.3.4 在TreeView中      选择多个选项475  14.3.5 在TreeView控件中      指定定制的图标478  14.3.6 指定用于连接      节点的线条479  14.3.7 编程使用TreeView控件481 14.4 Menu服务器控件487  14.4.1 给Menu控件      应用不同的样式488  14.4.2 Menu事件493  14.4.3 把Menu控件绑定      到XML文件上493 14.5 SiteMap数据提供程序495  14.5.1 ShowStartingNode属性495  14.5.2 StartFromCurrent      Node属性496  14.5.3 StartingNodeOffset属性497  14.5.4 StartingNodeUrl      属性498 14.6 SiteMap API498 14.7 URL映射501 14.8 站点地图的本地化502  14.8.1 为本地化构建      Web.sitemap文件502  14.8.2 修改Web.config文件503  14.8.3 创建程序集资源      (.resx)文件504  14.8.4 测试结果505 14.9 小结506 第15章 个性化507 15.1 个性化模型507 15.2 创建个性化属性508  15.2.1 添加简单的个性化属性508  15.2.2 使用个性化属性509  15.2.3 添加一组个性化属性513  15.2.4 使用分组的个性化属性514  15.2.5 为个性化属性定义类型514  15.2.6 使用定制的类型515  15.2.7 提供默认值518  15.2.8 把个性化属性      指定为只读518 15.3 匿名个性化518  15.3.1 支持终端用户的      匿名身份519  15.3.2 使用匿名身份事件521  15.3.3 个性化属性的匿名选项522 15.4 编程访问个性化功能522  15.4.1 迁移匿名用户523  15.4.2 Profile的个性化524  15.4.3 确定是否继续自动保存525 15.5 个性化提供程序526  15.5.1 使用SQL Server      Express Edition526  15.5.2 使用Microsoft的      SQL Server527  15.5.3 使用多个提供程序534 15.6 小结534 第16章 成员和角色管理535 16.1 身份验证535 16.2 授权535 16.3 ASP.NET 2.0的身份验证536  16.3.1 为成员建立Web站点536  16.3.2 添加用户538  16.3.3 请求凭证549  16.3.4 处理验证用户553  16.3.5 在线显示用户数556  16.3.6 处理密码557 16.4 ASP.NET 2.0的授权561  16.4.1 使用LoginView      服务器控件561  16.4.2 为角色管理建立      Web站点563  16.4.3 添加和检索      应用程序角色566  16.4.4 删除角色568  16.4.5 给角色添加用户569  16.4.6 获取某个角色的      所有用户570  16.4.7 获取包含某个      用户的所有角色572  16.4.8 从角色中删除用户572  16.4.9 检查角色中的用户573  16.4.10 角色的高速      缓存方式574 16.5 使用Web站点管理工具575 16.6 Membership API的    公共方法576 16.7 Roles API的公共方法576 16.8 小结577 第17章 Portal Framework      和Web Part579 17.1 Web Part简介579 17.2 建立动态的模块化    Web站点581  17.2.1 WebPartManager控件581  17.2.2 使用区域进行布局582  17.2.3 WebPartZone控件585  17.2.4 允许用户改变      页面的模式587  17.2.5 修改区域598 17.3 使用Portal Framework    中的类604 17.4 创建定制的Web Part607 17.5 小结612 第18章 安全性613 18.1 身份验证和授权613 18.2 应用身份验证措施614

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧