一.Asp.net基础
1.定义
一种开发动态Web页面的服务器端技术。
2.场所
1)B/S模式应用程序
a)网站(电子商务网站等)(Internet)
b)企业信息化系统(ERP,OA等)(企业内局域网中(Intranet)
3.优点
1)编译执行
2)丰富控件库
3)代码后置(CodeBehind)
4.运行环境
1)开发环境
(1)操作系统
Window XP/Visita/7
(2)Web服务器
a)IIS(Internet Information Service)
b)VS2008内置的轻量级Web服务器
(3)开发工具
VS2008
2)生产环境
(1)操作系统
Window 2003 Server
Window 2008 Server
(2)Web服务器
IIS(Internet Information Service)
互联网信息服务
(3).NetFrameWork
.Net框架2.0以上
注意
Widnows版本 IIS版本
XP (客户端操作系统) 5.1 创建虚拟目录
2003 Server 6.0 创建虚拟目录
Visita (客户端操作系统) 7.0 创建应用程序目录
2008 Server 7.0 创建应用程序目录
7 (客户端操作系统) 7.0 创建应用程序目录
二、Asp.NET WebForm
1.定义
Web程序开发框架
2.特点
基于“控件+事件”技术实现
三、创建Asp.net WebForm程序
1)创建网站
创建位置
(1)文件系统(使用内置Web服务器)
开发时使用
(2)本地IIS
开发后,测试或调试时使用
(3)FTP站点(FTP)
系统维护时使用
(4)远程站点(HTTP)
系统维护时使用
2)Asp.net Web应用程序
Asp.NET控件
1.控件
具有可视化界面组件
2.Asp.Net控件
1)HTML服务器控件(HTML控件)
命名空间:System.Web.UI.HtmlControls
Html控件=Html标签+runat="server"
2)Web服务器控件(Web控件)
命名空间:System.Web.UI.WebControls
由微软新定义的一组特殊的标签
<asp:控件类型 id="控件标识" runat="server" />
Web控件会由Asp.net引擎转化为HTML标签
注意:
(1)所有控件都继承System.Web.UI.Control类
(2)所有的服务器控件都要放在HtmlForm容器控件中
3.标准控件
注意:
1)控件在浏览器呈现的Html标签
2)AutoPostBack属性,自动将页面提交服务器,推荐少用该属性
3)控件都在服务器解析
4)只有有Controls属性的控件都是容器控件
4.客户端事件处理
1)所有的Web控件都可以添加Html属性和事件
2)客户端访问控件时,使用ClientID标识控件
3)可以通过Attributes属性,向控件添加HTML属性或事件
注意:
实现在客户端弹出提示框
1.使用Label
2.使用Response.Write
3.使用ClientScriptManager
Asp.net系统对象
1. 概念
由Asp.net引擎创建内部对象叫系统对象
2.分类
1)应用程序级
Application,Session,Cache
2)页面级
HttpContext,Page,Request,Response,Server
3.Page对象
1.概念
1)每一个Asp.net页面运行时都是一个Page对象
2)所有的Asp.net页面都继承System.Web.UI.Page
3)Asp.net页面
(1)网站: .aspx+.aspx.cs=一个页面类
(2)Web应用程序:.aspx+.aspx.cs+.aspx.designer.cs
2.特点
使用了@Page指令来指定ASP.NET页用于编译的属性,
每个ASP.NET只能有一个@Page指令,且必须书写在页面中所有的其他代码之前
3.页面生命周期
(1)实例化
(2)初始化 Page_init()
(3)加载 Page_Load()
(4)验证 Validator()
(5)执行Form中的控件事件(Button_click等)
(6)呈现之前 Page_PreRender
(7)呈现
(8)卸载 Page_UnLoad()
(9)销毁
一、数据绑定
1.定义
将数据源的数据链接到显示控件中进行显示的过程。
2.作用
简化一般数据或集合数据的呈现显示过程
3.分类
1)简单数据绑定(页面内数据绑定)
(1)在页面内添加数据绑定标签<%# %>
(2)在代码中执行DataBind方法
2)复杂数据绑定
通过复杂控件进行数据绑定
(1)数据源控件绑定
注意:数据源控件作用为简化数据绑定过程
a)添加并设置数据源控件
用于小型或实验项目中使用
LinqDataSource
SqlDataSource
用于中大型项目中使用
ObjectDataSource
用于Access数据库访问
AccessDataSource
b)添加数据绑定控件并设置其属性
GridView1.DataSourceID=数据源控件ID
(2)手工编码方式绑定(优点:使用灵活)
GridView1.DataSource=数据集合
GridView1.DataBind()
二、列表控件数据绑定
1.绑定方式
(1)数据源控件绑定
DataSourceID="数据源控件ID"
DataTextField="字段名或属性名"
DataValueField="字段名或属性名"
(2)手工编码
DataTextField="字段名或属性名"
DataValueField="字段名或属性名"
DataSource=数据集合
DataBind()
三、GridView
1.概念
以表格格式显示数据的数据绑定控件
2.特点
1)Asp.net1.0 DataGrid与Asp.net2.0 GridView类似
2)GridView是Asp.net在Web控件最复杂、功能最强大的数据控件
3.GridView列(字段)的分类
1)BoundField(绑定字段) 最简单列
属性:
DataField="绑定字段和对象属性名"
HeaderText="列标题文本"
DataFormatString="{0:C}元"
2)ButtonField(按钮字段)
属性:
HeaderText
Text
CommandName=默认命令名称或自定义名称
事件:
如果CommandName是自定义名,会触发RowCommand事件
3)HyperLinkField(超链接字段)
属性:
DataTextField="绑定字段和对象属性名"
HeaderText="列标题文本"
DataNavigateUrlFormatString="URL连接"
DataNavigateUrlFields="绑定字段和对象属性名"
4)CommandField(命令字段)
属性:
ShowDeleteButton="True"
ShowEditButton="True"
ShowSelectButton="True"
5)ImageField(图片字段)
属性:
DataImageUrlField="绑定字段和对象属性名"
DataImageUrlFormatString="图片格式"
HeaderText="列标题文本"
6)CheckBoxField(复选框字段) 数据库中表的字段必须布尔类型
属性:
DataField="绑定字段和对象属性名"
HeaderText="列标题文本"
7)TemplateField(模板字段) 最复杂和最灵活
4.事件
RowCommand事件
RowDataBound事件
5.属性
DataSource
DataSourceID
DataKeyNames 与GridView关联的主键
DataKeys
6.分页
1)属性
AllowPaging="True"
PageSize="2"
<PagerSettings FirstPageText="第一页" LastPageText="最后一页"
Mode="NextPreviousFirstLast" NextPageText="下一页" Position="TopAndBottom"
PreviousPageText="上一页" />
PageIndex 当前页索引
PageCount 页总数
2)事件
PageIndexChanging
7.排序
1)属性
AllowSorting="True"
SortExpression="SalePrice"
2)事件
Sorted
Sorting
8.光棒效果
1)在页面编写js脚本
2)在RowDataBound事件中,在每一行中添加onmouseover和onmouseout事件
9.全选删除
1)在页面中编写js脚本,实现全选或取消全选
2)在Button_Click中循环GridView的每一行来判断删除
四、DetailsView
1.概念
2.属性
DataKeyNames
DefaultMode
一、DataList
1.概念
用于在页面上呈现多条数据记录的控件
2.绑定数据
1)数据源控件绑定
2)手工编码绑定
3.特点 1)DataList控件不包含修改、删除、分页和排序功能
2)DataList是通过模板实现显示样式的设置
4.模板
1)项模板(ItemTemplate)(重点)
可以绑定数据
2)交替项模板(AlternatingItemTemplate) (重点)
可以绑定数据
3)选择项模板(SelectedItemTemplate)(重点)
只有SeletedIndex为当前项时才显示
可以绑定数据
4)编辑项模板(EditItemTemplate)(重点)
只有EditItemIndex为当前项时才显示
可以绑定数据
5)页眉模板(HeaderTemplate)
6)页脚模板(FooterTemplate)
7)分隔符模板(SeparatorTemplate)
5.分页
1)创建PagedDataSource控件实例
2)设置数据源为对象集合
3)设置PagedDataSource控件实例的AllowPaging属性值为“true”,打开分页功能
4)设置PagedDataSource控件实例的PageSize属性设置每页显示的数据数量
5)设置PagedDataSource控件实例的CurrentPageIndex属性设置当前提供数据页的索引值,此值从0开始
6)设置DataList控件的DataSource属性值为PagedDataSource控件实例。
7)调用DataList控件的DataBind方法
注意:页号保存位置
1)ViewState
2)Url中查询字符串
6.布局
RepeatDirection="Horizontal" RepeatColumns="3"
RepeatLayout="Flow"
7.选择和编辑
1)属性
SeletedIndex 选择项行索引
EditItemIndex 编辑项行索引
2)事件
ItemCommand 按钮按下时触发DataList的事件
ItemDataBound 每一项绑定时触发
二、Repeater
1.概念
Repeater控件是一个纯粹的模板控件,不生成除了模板中定义的代码之外的任何代码。
Repeater控件仅支持以模板的方式呈现数据的功能。
2.模板
1)ItemTemplate
2)AlterningItemTemplate
3)SeparatorTemplate
4)HeaderTemplate
5)FooterTemplater
3.比较
1)内置功能
GridView>DataList>Repeater
2)性能
Repeater>DataList>GridView
4.使用
在企业信息系统开发中使用GridView和DataList
在网站开发中使用Repeater和DataList
5.事件
ItemCommand
ItemDataBound
三、ListView
1.概念
ListView控件是.NET Framework3.5中新增加的控件,可以以任意的格式呈现数据,它既具有与GridView一样强大的内置功能,又能像DataList一样显示多行多列的布局,并且和Repeater一样属于纯模板的控件
2.使用
1)使用ListView控件呈现数据只需要配置好数据源控件,拖入ListView控件,并设置ListView的数据源为已配置好的数据源控件,最后在ListView控件上选择“配置ListView”,通过选择对应的风格、样式,ListView将自动生成显示模板
2)ListView控件支持自动分页,可以通过在“配置ListView”的弹出窗口中勾选启用分页并选择页导航样式,达到分页的效果
3.模板
重要模板
LayoutTemplate:是用于对ListView的整体输出布局进行控制的模板
GroupTemplate:是将多条数据组成一个组输出数据的模板。
占位符:
ListView控件支持两种占位符,组占位符和项占位符。
其中,组占位符的ID默认值为“groupPlaceHolder”,可以通过ListView的GroupPlaceHolderID属性来指定;项占位符的ID默认值为“itemPlaceHolder”,可以通过ListView的ItemPlaceHolderID属性来指定
四、FormView
1.概念
FormView控件用于一次显示数据源中的一条记录,是一个与DetailsView控件功能和使用方式基本相同的控件,但FormView控件是基于模板布局的,而DetaisView控件是基于表格布局的
2.模板
在FormView控件中使用ItemTemplate、EditTemplate和InsertItemTemplate模板控制呈现、修改和删除操作的界面,使用PagerTemplate模板控制分页,还可以使用 HeaderTemplate 和 FooterTemplate 模板分别自定义 FormView 控件的页眉和页脚。通过使用EmptyDataTemplate,还可以指定在数据源不返回任何数据时显示的模板
一、母版页
1.概念
实现网站统一样式布局的技术
2.组成
1)母版页
(1)以.master为扩展名
(2)继承System.Web.UI.MasterPage类
(3)他是整个网站的布局框架
(4)一个母版页包含一个或多个ContentPlaceHolder控件
(5)母版页不能直接访问
2)内容页
(1)以.aspx为扩展名
(2)继承System.Web.UI.Page类
(3)主要呈现具体内容
(4)在页面内不包含<html>,<head>,<body>和<form>标签
(5)通过@Page中MasterPageFile属性与母版页联系
(6)内容页中控件及内容必须包含在Content控件中
(7)Content控件的contentplaceholderid属性指向母版页的ContentPlaceHolder控件ID
3)使用
(1)通过母版页向内容页传递数据
Label lbl = this.ContentPlaceHolder1.FindControl("Label1") as Label;
if (lbl != null)
{
lbl.Text = TextBox1.Text;
}
(2)通过内容页访问目标的控件
TextBox txt = this.Master.FindControl("TextBox1") as TextBox;
if (txt != null)
{
txt.Text = "欢迎使用本软件";
}
注意:母版页可以嵌套
二、导航控件
1.概念
使用站点地图实现页面导航。
2.站点地图
1)站点地图文件是一个拥有固定格式要求的XML文件,使用普通文本编辑器即可以进行编写。
2)在站点地图文件中只包含一个直接位于 siteMap 元素下方的 siteMapNode 元素。但第一级 siteMapNode 元素可以包含任意数量的子 siteMapNode 元素。此外,尽管 url 属性可以为空,但有效站点地图文件不能有重复的 url值
3)站点地图的名称默认为Web.sitemap
4)Web.sitemap文件必须在应用程序根目录下
3.Menu控件
(1)概念
Menu控件是一种菜单方式的站点导航模式,它可以将站点地图中指定层次的节点以菜单方式列出,同时更深层次的节点,可以选择性以动态方式列出
(2)使用
1)SiteMapDataSource
2)XmlDataSource
4.SiteMapPath控件
1)SiteMapPath控件也是常用的导航控件之一,一般又称为面包屑导航,它将在页面显示一个导航路径,为用户显示当前页的位置以及返回到主页的路径链接
2)使用SiteMapPath控件时,只要在站点中添加站点地图文件,然后在页中拖入SiteMapPath控件即可,不需要使用SiteMapDataSource控件
3)SiteMapPath控件要求页面必须为站点地图中的列出的页,即使用SiteMapPath控件的页面必须位于站点地图某个节点的url属性中,否则不会有任何显示
5.TreeView
1)概念 TreeView控件也是ASP.NET中的一种导航控件,它通过树状方式显示站点地图中的节点。与Menu控件、SiteMapPath控件不同,默认情况下TreeView控件会按层次列出站点地图中所有节点的链接。TreeView控件的用法与Menu控件相同
2)使用
(1)SiteMapDataSource
(2)XmlDataSource
一、验证控件
1.概念
为保证用户输入的数据用效的一组控件
2.特点
1)使用数据验证控件验证用户输入时,数据验证控件首先会检查客户端的脚本是否可用,如果可用将优先使用客户端的脚本进行验证,减少对服务器请求的次数,提高程序的工作效率。同时为了确保安全,在客户端验证通过后,在服务器端仍然会进行再进行验证,避免恶意的用户绕过客户端验证,发送不合法的数据到服务器端。如果数据验证控件的验证没有通过,会显示设定的错误信息,并且不会引发服务器端事件
3.使用
1)非空字段验证控件(RequiredFieldValidator)
属性:
ControlToValidate
ErrorMessage
2)范围验证控件(RangValidator)
属性:
ControlToValidate
ErrorMessage
Maxinumvalue
MinimumValue
Type
3)比较验证控件(CompareValidator)
属性:
ControlToValidate
ErrorMessage
ControlToCompare
ValueToCompare
Operator
Type
注意:CompareValidator可以实现三种验证
(1)控件与控件值比较
(2)控件与固定值比较
(3)控件值的类型检查
4)正则表达式控件(RegularExpressionValidator)
属性:
ControlToValidate
ErrorMessage
ValidationExpression
作用:进行输入的格式验证
5)自定义验证控件(CustomValidator)
属性:
ControlToValidate
ErrorMessage
ClientValidationFunction 客户端验证时设置
事件:
servervalidate 服务器端验证
注意:
Page.IsValid
页面中验证控件全部验证通过时为True
二、自定义控件
1.概念
由程序员自己实现的Asp.net控件
2.使用
从以下三个类继承而成
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.CompositeControl
区别:
Control:只提供简单的呈现,没有对css的支持。如Literal控件
WebControl:建立了对控件外观的支持。适合可视化的控件来继承 ,如TextBox
CompositeControl:是派生多个控件组合的复合控件。适合开发应用asp.net中的标准控件
一、配置文件
1.概念
配置用于决定程序运行状态的文件
2.特点
1)基于XML格式的文件
2)Asp.net中有两类配置文件
(1)machine.config(一个计算机中,每个.Net Framework中只能有一个该配置文件)
对整个计算机或服务器进行配置
(2)Web.config
对当前应用程序进行配置,在网站中可以存在多个
3.配置文件结构
1)配置节处理程序声明区
<configSections></configSections>
其中,每个<section>就是一个配置节处理程序声明
2)配置节配置区
在<configSections>下面为配置区
一、缓存技术
1.定义
将构建价值高的和访问频率高的数据保存到内存中技术
2.分类
1)页面输出缓存
缓存Asp.netWeb页面生成结果
(1)整页缓存
<%@ OutputCache ...%>
(2)页面部分缓存
先将整页缓存,然后替换不缓存部分,称为缓存后替换
a)使用OutputCache指令缓存整个页面
b)放置Substitution控件到不缓存部分
c)在代码中创建静态方法,来产生不缓存的内容
public static string GetMsg(HttpContext context)
(a)必须静态方法
(b)返回类型必须为string类型
(c)参数类型为HttpContext d)设置Substitution控件MethodName属性指向代码中的静态方法
2)应用程序缓存
缓存Asp.net应用程序中使用的数据
使用Cache类保存数据