北大青鸟Y2学期_Net控件 总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“net控件总结”。
--------ASP.Net总结------------------第一章---------------1.1 ASP.Net简介
定义:ASP.Net是基于B/S的应用程序,可创建动态、交互的Web页面的服务器端技术。
特色和优势:(1)与浏览器无关。遵循W3C标准XHtml标准,在任何浏览器中显示效果一样。
(2)易调试。IIS是微软开发的Web服务器。
(3)编译后执行。先编译成微软中间语言MSIL,然后由即时编译器JIT编译成机器语言。
(4)丰富的控件库。在ASP.Net 2.0中内置了80多个常用空间。
(5)代码后置。将Web界面元素和程序逻辑分开显示。
1.2 开发环境搭建
安装IIS步骤:(在Windows 2003中)“控制面板”─→“添加/删除程序”─→选中“应用程序服务器”─→
“详细信息”─→选择安装相关组件和服务─→其中“万维网服务”可选择安装APS服务器安装文件
─→“确定”─→“下一步”。
设置虚拟目录:(就是设置站点)打开“Internet 信息服务(IIS)管理器”─→“开始”─→“控制面板”─→
“管理工具”─→“Internet 服务管理器”─→右键网站下面的“默认网站”─→“新建”─→“虚拟目录” ─→填写目录的名称─→选择程序放置的路径─→设置该路径的访问权限。
1.3第一个ASP.Net应用程序
创建站点:(1)文件系统。可将站点文件存储在本地硬盘或局域网中,无需IIS就可开发测试。
(2)本地IIS。可使用IIS高级功能,为Web测试时使用。
(3)FTP站点。可在服务器上保存文件,通过FTP访问。缺陷是不能使用源代码管理器。
(4)远程站点。类似于FTP,使用Http方式连接。站点配置复杂,缺点多,极少用。
TextBox控件:
属性:(1)AutoPostBack 指示用户更改了控件内容,是否回发到服务器。
(2)ReadOnly 设置只读
(3)Text 设置或获取文本内容
(4)TextMode 枚举,控件模式SingleLine单行,MultiLine多行,PaWord密码
事件:(1)TextChange
当文本发生变化且失去焦点是发生。需要设置AutoPostBack为true
--------第二章---------------2.1 ASP.Net运行机制
┌─(解析)←─[ASP.Net引擎]───→(合并生成)←─[后置代码] 第一次请求─→[.ASPX文件]
↓
第二次请求─→[.ASPX文件]二次请求实例化┐ [生成的页面类]编译
↓
↓
←────────响应←───── [页面类] ←─────┘
2.2系统对象
Page对象:(就是页面类的实例)(1)@Page指令。用于编译和解析aspx页面;一个aspx页面只能有一个@Page指令。
参数:Language 指定代码语言。
AutoEventWireup 是否自动调用Page_load事件。CodeFile 代码后置文件名称。Inherits 页面类。
(2)ASP.Net页面传值。(回发机制是对Get、Post提交方式进行的一种封装)属性:IsPostBack 设置页面是否回发。
PreriousPage 指向源页面,其FindControl方法可通过ID访问相应控件。
IsCroPagePostBack 是否使用跨页提交。
Cookie对象:(指小量信息存储在浏览器目录中的文本文件)(1)写入Cookie:Response.Cookies[Cookie名称].Value=值;
(2)读取Cookie:变量名= Request.Cookies[Cookie的名称].Value;(3)添加Cookie: Response.Cookies.Add(new HttpCookie(“Cookie名称”,“值”));(4)属性:Name:Cookie变量名称
Value:Cookie变量的值
Expires:Cookie变量的有效时间
Seion对象:(会话机制,存储在服务器端的数据)(1)写入Seion: Seion[“Seion名称”]=值;
(2)读取Seion:变量=Seion[“Seion名称”];
(3)属性:SeionID 唯一的用户会话标识符。TimeOut 设置用户超时时间/分钟。IsNewSeion 是否按请求创建会话。
(4)方法:Clear 从会话状态集合中移除所有的键和值; Abandon 结束Seion,取消当前会话。
Application对象:(应用程序对象,用于用户之间的共享信息,用法与Seion一样)属性:(1)All 返回全部的Application对象变量到一个对象数组。
(2)Allkeys 返回全部的Application对象变量到一个字符串数组。
(3)Count 取消Application对象变量的数量。
(4)Item 允许使用索引或application变量名称传回变量值。
方法:(1)Add 新增一个Application对象变量。(2)Clear 清除全部的Application对象变量。
(3)get 使用索引值或变量名称传回变量值。
(4)Set 使用变量名称更新一个Application对象变量的内容。
(5)Lock 锁定全部的Application变量。
(6)UnLock 解除锁定的application变量。
Server对象:(与Web服务相关的方法)方法:(1)HtmlEncode 对Html格式进行编码。
(2)HtmlDecode 与HtmlEncode相反,对内容解码。
(3)UrlEncode 对URL地址进行编码。
(4)urlDecode 对URL地址进行解码。
(5)MapPath 返回相对路径的绝对路径位置。
(6)Execute 在当前页面执行参数指定的页面,完成后继续执行本页面。(7)Transfer 参数指定的页面处理完后,页面执行结束。
Request对象:
属性:(1)aQueryString 集合主要用于收集Http协议中Get请求方式发送的数据。
(2)Form 集合用于收集Post方法发送的数据。
(3)ServerVariable 集合包含了服务器和客服端的系统信息。(4)Params 集合是以上三种方式的集合,不区分传递方式。
Response对象:
方法:Write()输出指定文本内容。
End()使Web服务器停止当前的程序并返回结果。
Redirect()重定向到另外一个页面。
--------第三章---------------
3.1用站点导航控件与母版页搭建页面框架
分类:Html服务器控件与Web服务器控件。runat=“server”申明了控件在服务器端运行。
比较:从运行效率讲:Html控件要高,不支持服务器端编程。
从开发效率讲:Web服务器控件高。
3.2导航系统
(1)站点地图:(特殊的xml文件,文件名必须是web.sitemap,必须放置于程序根目录)注意事项:根节点有且只能有一个;其下一级有且仅有一个。
同一个URL只许出现一次。
(2)siteMapPath 控件(面包屑导航,使用站点地图作为数据源)属性:PathSeparator 控制分隔符。
PageLevelsDisplayed 控制导航显示级数。默认为-1,无限制。(3)TreeView 导航控件(树形控件,可使用站点地图或者xml文件作为数据源)属性:TextField 设置显示文字所绑定的字段。
NavigteUrlField 设置链接对应的字段。(4)Menu控件(动态菜单控件,与TreeView类似)属性:StaticDisplayLevels 静态显示的级数。
MaximumDynamicDisplayLevels 支持的最多级别数。设负数异常。
Orientation 布局类型:横向(Horizontal)与纵向(Vertical)
3.3 母版页(.“master”为文件后缀名的文件)(1)特点:高效的内容整合能力使站点容易修改和维护。
利用了对象模型和页面布局。
(2)使用:与普通页面类似,有一个ContentPlaceHolder控件,预留给内容页。
在内容页中,MasterPageFile 指定所使用的母版页的路径。
(3)区别:使用<%@ master 作为标记。
在内容页,MasterPageFile 指定所使用的母版页的路径。
--------第四章---------------
4.1 系统框架
(1)表示层:Web项目,即访问的站点,提供与所有用户进行的交互界面,通过BLL层相关方法。
(2)业务逻辑层:BLL项目,为表示层提供所有的业务方法和数据访问。
(3)数据访问层:DALFactory项目,IDAL项目、OracleDAL或SQLServerDAL项目属于数据访问层。
(4)模型层:Model项目,包含与数据库相对应的实体类,作为层与层数据传递的载体。
4.2 搭建第三波书店的架构
模型层是标准、规范、三层之间的数据传递,通过传输实体对象来达到目的。它包含了与数据
库表相对应的实体类,在模型层中,外键的处理可以有两种方式,使用外键ID或者使用外键类。外键类的优点是可以直接使用属性访问。
数据访问层涉及所有与数据表相关的操作,分为增、删、查、改(CRUD)四中类型的方法,为增
加代码的重要性,我们使用了DBHelper类。
业务逻辑层包含了所有业务逻辑的处理方法,并提供表示层和数据访问层交互的桥梁。
表示层是整个站点内容的展示和用户交互的处理,可以做简单的验证。
--------第五章---------------
5.1 数据查询与展示概述
(1)数据源空间,由System.Web.UI.DataSourceControls 类派生而来。
结构图Control类
├→DataSouceControl 控件(普通数据源控件)
│ ├→ObjectDataSource 将业务逻辑层的数据对象与表示层数据绑定控件绑定
│ └→SqlDataSource 从SQLServer、ODBC、Oracle等数据源中检索数据
│
└→AcceDataSource 专门用于从Acce数据库中检索数据
└→HierarchicalDataSourceControl(层次化数据源控件)
├→XmlDataSource 用于检索和处理xml等分层数据。
└→SiteMapDataSource 专门处理类似站点地图的xml 数据。
(2)数据绑定控件
结构图: BaseDataBoundControl
├→HierarchcalDataBoundControl
│ ├→TreeView
│ └→Menu
└→DataBoundControl
├→AdRototor
├→ListControl
│ ├→DropDownList
│ ├→CheckBoxList
│ ├→RadioButtonList
│ ├→ListBox
│ └→BulletList
└→CompositeDataBoundControl
├→GridView
├→DetailsView
└→FormView 5.2实现图书的分类管理
(1)GridView 控件提供的7种数据绑定列类型
①BoundFeld 用于显示普通文本,其属性DataFormatString用于设置显示格式:
{0:D}为数字;{0:yy-mm-dd}日期格式。需要设置HtmlCode为false,否则无效。
②TemplateFiled 以模板形式自定义数据绑定列的内容。
包含标头(HeaderTemplate)、脚注(FooterTemplate)、普通项(ItemTemplate)、交替
项(AlternatingTemplate)、编辑模式(EditItemTemplate)
③ButtonField 按钮,通过CommandName 设置按钮的命令。
④CommandField 与ButtonField类似,提供了创建命令按钮的功能。执行选择、编辑、插入或删除操作命令。
⑤HyperLinkField 可将绑定的数据超链接显示,其属性DataNavigateUrlFormatString
用于指向目标页面地址的格式;DataNavigateUrlField 为传递的参数。例如:
DataNavigateUrlField=“Id” Text=“详细”>
⑥ImageField 可显示图片列,一般绑定图片的路径。例如:
DataImageUrlFormatString='~/images/bookcover/{0}.jpg'>
⑦CheckBoxField 可使用复选框显示显示布尔类型数据
(2)多选和光棒效果
①多选效果关键代码
Function GetAllCheckBox(checkAll){
var items=document.getElementsByTagName(“input”);
for(i=0;i
if(items[i].type==“checkBox”){
items[i].checkBox=CheckAll.checked;
}
}
}
②光棒效果,在GridView中onRowDataBound 事件中绑定如下:
if(e.Row.RowType == DataControlRowType.DataRow){
e.Row.Attributes.Add(“onmouseover”,“currentcolor=this.style.backgroundColor;this.style.backgroundColor=#6699ff”);
e.Row.Attributes.Add(“onmouseout”,“this.style.backgroundColor=”currentcolor“);
}(3)DropDownList 常用属性和事件
①SelectedItem 属性: 设置或获取下拉菜单的选中项。Value 值; Text 显示文本。
②SelectedValue 属性: 获取选择项的值,与SelectedItem.Value 一致。
③DataTextField 属性: 设置或获取提供列表项文本内容的数据源的字段。
④DataValueField 属性:设置或获取提供列表项值的数据源的字段。
⑤AutoPostBack 属性: 控件状态是否回发,默认false。
⑥SelectIndexChanged 事件:点选定内容改变时发生。
(4)DetailsView 控件
属性:
①DefaultMode: 设置或获取控件默认的状态。分为ReadOnly 显示,Edit修改,Insert添加
②Datakey: 数据的主键。
③DatakeyNames:设置或获取一个字符串,该字符串包含数据源中间的组合。
事件:
①ItemInserting:单击添加按钮,执行添加方法之前添加。
②ItemUpdating: 单击更新按钮,执行更新方法之前添加。
附:CurrentMode 用于判断DetailView 的状态。
--------第六章(数据插入与更新)6.1 验证控件结构图
WebControl
├→ValidationSummary(汇总所有的错误报告)
└→Label └→BaseValidator(基础验证类;抽象类)
├→RequiredFieldValidator(非空验证)
├→RegularExceptionValidator(正则表达式验证)
├→CustomValidator(自定义验证)
└→BaseCompareValidator
├→RangeValidator(范围检查)
└→CompareValidator(两次密码和数据类型的验证)(1)RequiredFieldValidator
属性:ControlToValidate 验证控件的ID,所有验证控件都有该属性。
Text 出错时的提示,所有验证控件都有该属性。
ErrorMeage 提交给汇总控件的错误信息。所有验证控件都有该属性。
(2)CompareValidator
属性:ControlToValidate 验证控件的ID。
Type 设置比较类型。
Operator 设置比较运算符,默认为equals。
ValueToCompare 用于比较的值。
(3)RangeValidator
属性:MaximumValue 范围的上界。
MinimumValue 范围的下界。
Type 验证类型。
(4)RegularExceptionValidator
属性:RegularExpreion 正则表达式编辑器。
(5)CustomValidator
属性:ClientValidationFunction 用于设置客户端验证的脚本函数。
OnServerValidate 服务器端验证的时间方法。
(6)ValidationSummary
属性:ShowMeageBox 是否显示弹出的提示信息。
ShowSummary 是否显示报告的内容,用于显示提示消息的时候。
(7)IsValid属性用于判断页面中所有输入是否已通过验证,为服务器端验证。
6.2 图书的修改
(1)Calendar 日历控件(日历的显示、隐藏、选择时会回传,浪费资源)
属性:SelectedDate 设置或获取选择的日期。
VisibleDate 当前可见的日期(默认显示的月份)
TitleFormat 标题格式(”某月“或”某年某月“)
事件:SelectionChanged 选择某日期后的事件。
(2)JS版日历(页面无刷新,界面美观)
首先导入JS文件,再在文本框的onFocus事件中调用函数。
(3)图片上传FileUpload 控件
(4)ImageMap 控件(在图片中定义一些热点区域)(5)HyperLink 超链接控件
属性:NavigateUrl 设置或获取超链接所指向的Url地址。
ImageUrl 可设置为图片形式的链接。
Text 链接显示的文本。(6)MultiView 多视图控件,一般与View控件一起使用。
属性:ActiveViewIndex 设置或获取当前被激活显示的View的索引值。
--------第七章(数据查询与展示 DataList)-----------------------7.1 图书列表页的展示:DataList 结构图:System.Web.UI.Control
├→Repeater └→WebControl
├→BaseDataList
│ └→DataList
└→BaseDataBoundControl
├→DataBoundControl
├→CompositeDataBoundControl
└→GridView(1)DataList 控件模版:ItemTemplate 显示项的模版
SeparatorTemplate 分隔符的模版
(2)分页的实现:
①基于SQL语句:
a.子查询:Select Top PageSize * from 表名 where 条件 and id not in(Select Top PageSize*(CurrentPageIndex-1)id from 表名 Order by 排序)
Order by 排序
b.函数Row_NUMBER(): Select * from
(Select Row_NUMBER()over(order by 排序)as PriceRank,* from books)
as Rank where PriceRank between 21 and 30 order by 排序
②基于PagedDataSource类的分页
属性:CurrentPageIndex 当前页
PageCount 总页数
Count 总记录数
PageSize 每页记录数
DataSource 数据源
AllowPaging 控件是否实现自动分页
③页面级的状态保持:ViewState
语法:ViewState[”名称“] =值;
原理:在页面上放了一个隐藏域,数据回传时其内容一起回传。
7.2 Repeater 控件的用法
优点:不自动生成任何Html标签,带来了效率的提升,精确展示内容。
缺点:可用模版少,只能通过源代码视图进行模版的编辑。
--------第八章(常用第三方工具和控件)-----------------------8.1 常用第三方控件
(1)FreeTextBox 控件使用步骤:
①添加控件到工具箱:右键工具箱→选择项→浏览→”FreeTextBox.dll打开“→完成 ②使用FreeTextBox:<%@ Register Aembly=”FreeTextBox“ Namespace=”FreeTextBoxControls“
TagPrefix=”FTB“ %>
属性:Language 语言,”en-US“美国英文;”zh-CN“简体中文
Text 设置或获取当前文本信息。
注意:做数据绑定更新提交到服务器是,须设置Page指令中ValidateRequest=”flase“;(2)验证码控件Webvalidates
方法:Creat()创建一个新的密码。
CheckSN()判断验证码是否与输入的一致,参数为用户输入的值,返回bool类型。
8.2 代码生成工具 CodeSmith(1)在CodeSmith Explorer的DatabaseSchema文件夹下有实体类模版busineobjects.cst。
(2)模版声明:<%@ CodeTemplate Language=”C#“ TargetLanguage=”C#“ Description=”“ %>
其中,Language=”C#“ 表示模版采用的语言。
TargetLanguage=”C#“ 生成文件的类型,如.sql为”T-SQL“
Description=”“ 说明,相当于注释。
(3)定义参数:<%@ Property Name=”Number Type=“Int32” Category=“context” Description=“” %>
其中:Name=“Number 参数名。
Type=”Int32“ 参数类型。
Category=”context“ 分类,是输入框还是下拉框。
(4)基本语法:
①脚本:
②代码标签:<% 任意代码%> 和<%=字符串%>(5)组件引用:<%@ Aembly Name=”SchemaExplorer“ %>
(6)导入命名空间:<%@ Import Namespace=”ScemaExplorer“%>(7)SchemaExplorer对象层次结构:
↗Commands→Parameters ╭Columns
Database→Tables ───────→│Indexes
↘Views→Columns ╰Keys(8)组件的使用:
①表的类型 TableSchema
②列的类型 ColumnSchema
╭ForeignKeyColumns 所有外键列的集合③表对象的常见属性 │NonForeignKeyColumns 所有非外键列的集合 ╰NonKeyColumns 既不是主键又不是外键的集合
--------第九章(用户控件和HttpHandler)-----------------------9.1 用户控件①②③④⑤⑥⑦⑧⑨⑩
(1)定义:用户控件(User Control)其实就是一种自定义的组合,当多个网页中有部分相同用户
界面时使用。
(2)创建:<%@ Control Languange=”C#“ AutoEventWireup=”true“ CodeFile=”UserLogin.ascx.cs“ Inherits=”_Controls_UserLoginControl“ %>(3)使用:<%@ Register scr=”../_controls/UserLoginControl.ascx“ TagName=”UserLoginControl“ TayPrefix=”url“ %>
其中,scr=”../_controls/UserLoginControl.ascx“ 表示用户控件文件路径
TagName=”UserLoginControl“ 表示用户控件名称
TayPrefix=”url“ 控件前缀
(4)注意:
①用户控件可以包含其他用户控件,但不可以互相包含。
②用户控件不可以单独访问,不能包含或等标签。
9.2 模块的处理程序
(1)配置文件
其中,verb=”*“ 表示请求方式。
path=”Images/*.jpg“ 表示访问路径
type=”CoverHandler“ 表示处理程序的名称。
(2)Request.PhysicalPath 用于获得Http请求所对应的物理路径。
(3)数字水印步骤:
①加载原图与水印图:System.Drawing.Image image=Image.FromFile(图片路径);
②实例化一张画布: Graphics g =Grapics.FromImage(原图);
③原图上绘制水印图:g.DrawImage(水印图,new Rectangle(原图宽-水印图宽,原图高-水印图高,水印图宽,水印图高),0,0,水印图宽,水印图高,GraphicsUnit.Pixel);//位置为右下角
④释放画布: g.Dispose();
⑤释放图片: image.Dispose();
⑥设置输出格式: Response.ContentType=”image/jpeg“;
⑦将图片存入输出流:
image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
(4)注:使用配置HttpHanders时,在IIS上请求.html,.jpg等静态格式时会直接将结果返回
不做处理。解决方法如下:
”打开IIS控制台管理程序“→”选择对应的站点目录“→”打开属性对话框“→”目录选项卡“
→配置→”映射选项卡“→添加→”选择当前版本的aspnet_isapi.dll文件“→”可扩展名JPG“
→”注意不要选中‘确认文件是否存在’复选框“→完成→”重启IIS“
--------第十章(网站部署与定制)-----------------------------10.1 配置文件
(1)machine.config 服务器配置文件,作用与所有本机的应用程序,存在于c:Windows Microsoft.NetFramework”版本号“(2)web.config 常用配置文件,存在于ASP.NET应用程序的根目录。在所有文件夹中都可以存在(3)就近原则:当多个配置文件存在并发生冲突时,采用就近原则,若该目录缺少某配置时,则
以上一级目录为准,直到machine.config。
(4)xml格式的配置文件优点:可读性好,修改方便,扩展性好,敏感信息加密。
(5)配置数据库连接字符串:
(6)使用连接配置(需要引入System.Configuration)
String connStr=ConfigurationManager.ConnectionStrings[”MyBookShop“].ConnectionString;(7)对数据库连接字符串加密和解密(在SDK命令提示符中键入命令)
加密:aspnet_regiis.exe-pef section physical_directory-prov provider
或: aspnet_regiis.exe-pef section-app virtual_directory-prov provider
其中,physical_directory 表示站点的物理路径。
section 表示加密的配置节。
virtual_directory 指定虚拟的路径。
provider 加密提供程序
例如:aspnet_regiis.exe-pef ”connectionStrings“ ”Web项目路径“-prov
”DataProtectionConfigurationProvider“
解密:aspnet_regiis.exe-pdf ”connectionStrings“ ”Web项目路径“
注:加密和解密必须在一台机器上;命令对中文路径支持不好。
(8)Window验证配置(安全性高,仅限于Windows平台,适合公司内部站点)
(9)Papord验证
(10)Forms 验证(使用广泛,使用cookie来维护页面之间的状态,最初由亚马逊网站开发使用)
其中,foms 子标签的常用属性:
name=”Admin“ 用于指定身份验证的cookie名称,默认情况下,值为.ASPXAUTH。
loginUrl 指定为登陆而重定向到URL,默认为default.aspx。
timeout=”60“ 表单验证的有效时间即cookie时间,单位/分钟。
path cookie的指定路径,默认为(/)即可用于整个站点。
(11)授权
在标签下,有两个种子标签deny(拒绝)和allow(允许),其属性:
user 一个用逗号分隔的用户列表,其中“?”代表匿名用户,“*”代表所有用户。
roles 逗号分隔的角色列表。
verbs 逗号分隔的谓词列表,如get、head、post或debug。
登陆处理:
string strRedirect=Request[”ReturnUrl“];//获取用户请求的页面。
//给用户发凭证
System.Web.Security.FormsAuthentication.SetAuthCookie(user.Name,true);
if(strRedirect==null)......退出处理:
System.web.Security.formsAuthentication.SignOut();//删除凭证
(12)自定义错误
(13)调试和运行
debug=”true“ 是否启用调试
enable=”true“ 程序是否启用
executionTimeOut=”90“ 程序执行上限
maxRequestLength=”40%“ 最大文件上传大小,默认4MB; 10.2 配置和管理
---------------(附属)------------------------(附属)------------------------(附属)------------------------(附属)------------------------(附属)---------文件上传
if(this.FileUpload1.HasFile){ string fileName = this.FileUpload1.FileName;//获取文件名
string lastName = fileName.Substring(fileName.LastIndexOf(”.“));//后缀名
lastName = lastName.ToLower();if(lastName == ”.jpg“ || lastName == ”.gif“ || lastName == ”.bmp“ || lastName == ”.png“){ fileName = GetNum()+ lastName;this.FileUpload1.SaveAs(Server.MapPath(”~/image/“ + fileName));this.txtUrl.Text = ”image/“ + fileName;Response.Write(”“);} else { Response.Write(”");}
}
private string GetNum(){ Random rand = new Random(unchecked((int)(DateTime.Now.Ticks)));DateTime datetime = DateTime.Now;string num = datetime.Year.ToString()+ datetime.Month.ToString()+ datetime.Day.ToString()+ datetime.Hour.ToString()+ datetime.Minute.ToString()+ datetime.Second.ToString()+ rand.Next(1000,10000);return num;}---------------(完毕)---------