From 8eba5ff8452c362fd5aa9ffdb8a4450194d65039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=B8=B0=E5=8D=8E?= <3254757072@qq.com> Date: Fri, 10 Jun 2022 13:12:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\347\254\224\350\256\260.md" | 1215 ++++++++++++++++- 1 file changed, 1214 insertions(+), 1 deletion(-) diff --git "a/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260.md" "b/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260.md" index 8904627..b2613b2 100644 --- "a/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260.md" +++ "b/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260.md" @@ -359,4 +359,1217 @@ Response.Cookies.Add(hcCookie); | -------------- | ------------------------------------------------------------ | | DisplayMode | 此属性用于指定将以摘要形式显示错误消息的方式。它将以为下列任意一种方式:BulletList、或SingleParagraph | | Enabled | 用于启用或禁用窗体中的客户端和服务器端验证。默认值为True | -| ShowMessageBox | 此属性用于激活弹出式消息框,以便显示窗体中的错误。为此必须将其设置为True,若为False则在页面列出错误点 | \ No newline at end of file +| ShowMessageBox | 此属性用于激活弹出式消息框,以便显示窗体中的错误。为此必须将其设置为True,若为False则在页面列出错误点 | + +### 一,ASP.NET + +#### 1,ASP.NET的优点 + +* ASP.NET 是一个革命性的程序设计框架,能够快速地开发功能强大的 Web 应用程序和服务 + +1.与浏览器无关 + +2.将业务逻辑代码与显示逻辑分开 + +3.新的集成开发环境 + +4.简单性和易学性 + +5,用户账户和角色 + +6,多处理器环境的可靠性 + +7,高效的可管理性 + +8,执行效率的大幅提高 + +9,易于配置和部署 + +#### 2,ASP.NET的功能 + +1,多语言支持 + +2,代码编译执行 + +3,缓存机制 + +4,服务器控件 + +5,Web服务 + +6,状态管理 + +7,安全管理 + +8,配置和部署 + +#### 3,ASP.NET的工作原理 + +| 组件 | 说明 | +| ---------- | ------------------------------------------------------------ | +| 内存 | 每次需花时间重建的项目可一次构建并存储在内存中。此过程可从内存中检索项目, 从而节省重建成本。以后当项目无效时可删除它们 | +| 解析器 | 在将.aspx页传递至编译器之前,先验证和解释其页面代码 | +| 编译器 | 在运行时将页面内容编译为中间语言(IL) | +| 程序集缓存 | 机器级代码缓存位于已安装Microsoft.NET Framework的每台机器上,其功能之一是存储已预编译的页面的本机代码 | +| 输出缓存 | 页面创建之后,可存放于此。它可存储整个页面,包括数据和对象。如果以后要请求此页面,可从输出缓存中检索 | + +#### 4,ASP.NET编程模型 + +##### 1,HTTP协议 + +* http://:代表超文本传输协议。 +* www:代表一个 Web(万维网)服务器。 +* microsoft.com/:这是存有网页的服务器的域名, 或站点服务器的名称。 +* china/:为该服务器上的子目录,就好像文件夹。 +* index.htm:是文件夹中的一个网页文件。 + +##### 2,基于事件的编程模型 + + + +### 二,ASP.NET页面对象 + +#### 1,网页脚本 + +* 指定输入文本或单击按钮后页面的行为。 +* 根据用户的输入或选择将应用程序从一个 页面导航至其他页面 。 +* 收集或存储来自客户端的信息。 +* 执行数据库操作,如查询、显示数据库数据等。 +* 网页脚本按其执行的位置可分为服务器端脚本不和客户端脚本。 + +##### (1)分类 + +* 服务器端脚本 +* 客户端脚本 + +#### 2,Page对象 + +##### 1,ASP.NET运行机制 + +##### 2,Page指令 + +###### (1)常见属性 + +| 属性 | 说明 | +| ------------------ | ------------------------------------------------------------ | +| AutoEventWireUp | 设置为True 时,指定页面事件自动触发。这个属性的默认设置是 True | +| Buffer | 设置为True时,支持HTTP响应缓存。这个属性的默认设置是True | +| ClassName | 指定编译页面时绑定到页面上的类名 | +| CodeFile | 引用与页面相关的后台编码文件 | +| CodePage | 指定响应的代码页面值 | +| ContentType | 把响应的HTTP内容类型定义为标准MIME类型 | +| Debug | 设置为True吋,用调试符号编译页面 | +| EnableSessionState | 设置为True时,支持页面的会话状态,其默认设置是False | +| EnableTheming | 设置为True时,页面可以使用主题。其默认设置是False | +| EnableViewState | 确定是否为服务器控件保持页面的ViewState。默认值是True | +| ErrorPage | 为所有未处理的页面异常指定用于发送信息的URL | +| Language | 定义内置显示和脚本块所使用的语言 | +| MasterPageFile | 带一个 String值,指向页面所使用的master 页面的地址。这个属性在内容页面中使用 | +| ResponseEncoding | 指定页面内容的响应编码 | +| Theme | 使用主题功能,把指定的主题应用于页面 | +| Title | 应用页面的标题。这个属性主要用于必须应用页面标题的内容页面,而不是应用master页面中指定内容的页面 | +| Trace | 设置为True时,激活页面跟踪,其默认值是False | +| TraceMode | 指定激活跟踪功能时如何显示跟踪消息息。这个属性的设置可以是SortByTime 或SortByCategory,默认设置是SortByTi ime | +| Transaction | 指定页面上是否支持事务处理。这个属性的设置可以是NotSupported、Supported、Required和RequiresNew,默认值是NotSupported | + +##### 3,代码隐藏 + +* 代码隐藏机制将ASP.NET页面分为两个文件 +* 一个含有可视化元素表示页面内容(aspx) +* 另一个为代码隐藏文件,含有应用程序逻辑 +* 代码存储在个单独的类文件中(aspx.cs或aspx.vb) +* 可在任意的文本编辑器中编写这样的代码,并以扩展名.aspx进行保存 + +###### 列如; + +```asp +<% @Page Language="C#" %> script runat "server" +private void btnLogin_Click(object sender,System.EventArgs e) +lbIManage.Text="欢迎,进入网站!";} + + +登录窗体 + +
+

+

+ + +``` + +```asp +<% @Page Language="C#" CodeFile="myLogin.aspx.cs" +AutoEventWireup="false"Inherits="myLogin"%> + +代码隐藏示例_登录窗体 + +
+

+ + + + +``` + +```asp +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System. Web; +using System. Web.Security; +using System. Web.UI; +using System.Web.UI. WebControls; +using System.Web.UI.WebControls. WebParts; +using System. Web.UI.HtmlControls; +public partial class myLogin: System. Web.UI.Page +{ + protected void btnLogin_Click(object sender, EventArgs e) + } + lblMessage.Text="欢迎,进入网站!"; + } + } +``` + + + +##### 4,Page对象的事件 + +###### 页面的生命周期事件 + +| 事件 | 典型应用和备注 | +| ----------------- | ------------------------------------------------------------ | +| PreInit | 设置母版页,设置主题 | +| Init | 在所有控件都已初始化且已应用所有外观设置后引发 | +| InitComplete | 使用该事件来处理要求先完成所有初始化工作的任务 | +| PreLoad | 引发该事件后,会为Page自身和所有控件加载视图状态,在该事件的代码中读取的控件属性值是已经根据视图状态修改了的属性值 。如果请求是回发请求,在此事件之前的3个事件中不要设置控件的属性,即使设置了新值也会因为加载视图状态而改变 | +| Load | 建立数据库连接
以递归方式对Pape对象的每个子控件执行Load操作。如此循环往复,直到加载完本页和所有控件为止 | +| 控件事件 | 如Button的Click事件等 | +| LoadComplete | 对需要加载页上的所有其他控件的任务使用该事件 | +| PreRender | 对页和控件的内容进行最后的修改
在该事件发生前,凡是设置了DataSourceID属性的每个数据绑定控件会自动调用 DataBindO方法 | +| SaveStatcComplete | 在该事件发生前,已针对页和所有控件保存了视图状态。在该事件及之后的任何事件中对视图状态的修改都无效 | +| Render | 对页中的每个控件调用它们各自的Render()方法,该方法的作业是把Page对象转换为HTML代码 | +| Unload | 关闭文件或数据库连接等 | + + + +###### 1,Page对象的属性 + +| 属性 | 说明 | +| --------------- | ------------------------------------------------------------ | +| Application | 为当前Web 请求获取Appltcation 对象。对于每个 Web 应用程序来说,只需一个该对象的实例。它是由所有访问该Web应用程序的客户端共享的 | +| EnableViewState | 指定当前页面上的服务器控件是否在页面请求之间保持ViewState。该值影响网页上的所有控件,同时取代控件自身的任何个人设置 | +| ErrorPage | 获取或设置错误页,在发生未处理的页异常的事件时请求浏览器将被重定向到该页 | +| ==IsPostBack== | 获取一个值,该值表示页是第一次访问还是回发访问 | +| IsValid | 获取一个值,该值指示页面验证是否成功 | +| ==Request== | 用于获取HttpRequest对象,此对象与从客户端发送HTTP请求数据的当前页面关联 | +| ==Response== | 用于获取HttpResponse对象,此对象与向客户端发送HTTP响应数据的当前页面关联 | +| ==Server== | 对当前 Server 对象的引用 | +| ==Session== | 用于获取ASP.NET提供的当前 Session 对象 | + + + +#### ==3,ASP.NET页面传值== + +##### 1,页内数据传递 + +```asp +//存放信息 +ViewState["nameId"]="0001"; +//读取信息 +String NamelD=ViewState["nameID".ToStr ringO; +``` + + + +##### 2,跨页数据传递 + +```asp +//Page1.aspx.cs +if(Page.IsPostBack)//第一次请求和回送 +{ + //处理相关的操作 +} +``` + +```asp +//Page1.aspx + +<%@ Page Language="C#"AutoEventWireup=" true" CodeFile="Pagel.aspx.cs" Inherits="Pagel"%> + + + + +First Page + + +

+
+ + + + + + + + + + + + + +
请输入您的姓名: +
+ +
+ +
+
+
+
+ + +``` + +```asp +//Page1.aspx.cs + +protected void btnPagel_Click(objeo t sender, EventArgs e) +{ + this.lblMessage.Text = "Hello "+this.txtName.Text; +} +``` + +```asp +//Page2.aspx + +<%@ Page Language-"C#" AutoEventWireup-"true" CodeFile-"Page2.aspx.cs"Inherits-“Page2" % + + + + + Second Page + + +
+
+
+
+ + +``` + +```asp +//Page2.aspx.cs + +rotected void Page_Load(object sender,System.EventArgs e) +{ + if (Page.PreviousPage!=null) + { + TextBox t1=(TextBox)PreviousPage.FindControl("txtName"); + if(t1 != null) + { + this.lblMessage2.Text="Hello"+ t1.Text +"
"; + } + } +} +``` + + + + + +### 三,基本控件的使用 + +#### 1,Web服务器控件 + +#### 2,HTML服务器控件 + +#### 3,基本控件的使用 + +##### 1,HiddenField控件 + +* 主要用于存储非显示值的隐藏字段,能将需要隐藏的数据保存在Value属性中,并向服务器端发送Value属性值 +* 使用Value属性指定HiddenField控件的值 + +列; + +```asp +<%@ Page Language"C#" AutoEventWireup"true" +CodeFile="CurPage.aspx.cs"Inherits="CurPage"%> + + + 分页 + + +
+
+

HiddenField 示例:

+

+ + + + + + +

+ +
+
+ + +``` + +```asp +//代码隐藏文件CurPage.aspx.cs的代码如下: + public partial class CurPage:System.Web.Ul.Page + { + protected void Page Load(object sender, EventArgs e) + { + if(Page.IsPostBack) + { + //从数据库读取总记录数 + this.hfldTotal.Value=“30”; + Setlnfo("I"): + } + } + protected void btnFirst_Click(objeet sender, EventArgs e) + { + SetInfo("l"); + } + protected void btnPre Click(object sender,EventArgs e) + { + int cur =Convert.Tolnt32(this.hfldCur.Value); + if(cur > 1) + cur--; + SetInfo(cur.ToStringO); + } + protected void btnNext_Click(object sender, EventArgs e) + { + int cur =Convert.Tolnt32(this.hfldCur.Value); + int total=Convert.Tolnt32(this.hfldTotal.Value); + if(curalert('当前是第{0}条记录');", cur); + } +``` + + + +##### 2,HyperLink控件 + +* 主要用于定位至其它网页,不公开任何事件 + +###### 属性 + +| 属性 | 说明 | +| ----------- | ------------------------------------------ | +| Text | 一段简短的描述性文本, 用于指定链接的用途 | +| Target | 链接的目标窗口/框架 | +| NavigateUrl | 单击链接时用户即将链推 接到的页面网址或URL | +| ImageUrl | 指定用于链接的图像URL | + + + +##### 3,CheckBoxList控件(复选框控件) + +* 可设置多个选项的复选框组 +* CheckBoxList选项是否被选中的属性与CheckBox不同 +* CheckBox使用Checked,而CheckBoxList选项使用Selected属性或SelectedIndex属性 + +###### 常用属性 + +| 属性 | 说 明 | +| --------------- | ------------------------------------------ | +| AutoPostBack | 当选定内容更改后,自动回发到服务器 | +| RepeatColumns | 获取或设置CheckBoxList中显示的列数 | +| RepeatDirection | 获取或设置CheckBoxList中各个选项的排列顺序 | +| Items | 列表中项的集合 | +| TextAlign | 获取或设置与CheckBoxList关联文本的对齐方式 | + + + +##### 4,RadioButtonList控件(单选框控件) + +###### 常用属性 + +| 属 性 | 说明 | +| --------------- | --------------------------------------------- | +| AutoPostBack | 当选定内容更改后,自动回发到服务器 | +| RepeatDirection | 获取或设置RadioButtonList控件子选项的排列方向 | +| RepeatColumns | 获取或设置要在RadioButtonList控件中显示的列数 | +| RepeatLayout | 获取或设置单选按钮的布局 | +| Items | 列表中项的集合 | +| TextAlign | 获取或设置与控件相关联文本的对齐方式 | + + + +##### 5,DropDownList控件(下拉选项) + +###### 1,属性 + +| 属 性 | 说明 | +| -------------------- | ------------------------------------------------------------ | +| AppendDataBound | 设计时已经添加了选项,再做数据绑定时产生的选项是追加还是替换已有的选项,为true 则是追加,为false 则是替换 | +| AutoPostBack | 选择一个列表项时DropDownList控件状态是否发回到服务器的值(True/False) | +| DataMember | 获取或设置数据源中的特定表格以绑定到该控件 | +| DataSource | 获取或设置填充列表控件的组成项的数据源 | +| DataTextField | 获取或设置提供列表项文本内容的数源的字段 | +| DataTextFormatString | 获取或设置用于控制如何显示绑定到列表控件的数据的格式字符串 | +| DataValueField | 获取或设置提供列表项文本内容的数据源的字段 | +| Items | 获取或者设置选项的值 | +| SelectedIndexChanged | 当从列表控件选择的内容在发布到 服务器的操作之间发生变化时发生 | + + + +##### 6,FileUpload控件 + +###### 1,常用属性 + +| 属性 | 说明 | +| ----------- | ------------------------------------------------------------ | +| FileContent | 返回一个指向上传文件的流对象 | +| FileName | 返回要上传文件的名称,不包含路径信息 | +| HasFile | 如是该控件有文件要上传,值为true;如果要上作 传的文件大小为0,则该属性值为false | +| PostedFile | 返回已经上传文件的引用 | + + + +#### 4,验证控件 + +##### 1,非空验证;==RequiredFieldValidator控件== + +* 检查任何特定控件中是否录入数据 + +###### 1,属性 + +| 属性 | 说明 | +| ----------------- | ------------------------------------------------------------ | +| ControlToValidate | 用于指定将要检查其值的控件,它具有该控件的ID 值 | +| ErrorMessage | 用于指定在窗体中同时使用ValidationSummary控件与RequierdFieldValidator控件时前者中显示的错误信息。如果未设置文本属性,则此属性将用于显示窗体中的错误 | +| Text | 指定验证控件缺少值后显示的错误消息文本,一般用“*”或者其他符号表明用户在哪个控件处没有录入数据 | +| Display | 验证控件的显示方式,Dynamic表示需要时才显示 | + +###### 2,方法 + +| 方法 | 说明 | +| ------------ | ------------------------------------------------------------ | +| Validate() | 此方法用于执行验证。它将根据验证的成功情况将IsValid属性更改为True或 False | + + + +##### 2,比较控件;==CompareValidator控件== + +* 将用户在一个窗体字段中输入的值与其它字段中的另一个值或任何其他固定的值进行比较 + +###### 1,属性 + +| 属 性 | 说明 | +| ----------------- | ------------------------------------------------------------ | +| ControlToCompare | 指定用来比较值的控件的ID | +| ControlToValidate | 指定将要验证的控件的ID | +| EnorMessage | 在页面中使用ValidationSummary控件时显示错误消息 | +| Text | 用于指定验证控件后出现错误时将会显示的错误信息 | +| Operator | 要执行的操作,Equal表示比较是否相等,DataTypeCheck表示做数据类型检查 | +| Type | 做比较时的数据类型 | +| ValueToCompare | 指定与所验证控件中的值相比较的值 | + +###### 2,方法 + +| 方法 | 说明 | +| ---------- | ------------------------------------------------------------ | +| Validate() | 执行验证,它将根据验证的成功情况将IsValid属性更改为True或False | + + + +##### 3,范围验证;==RangeValidator控件== + +* 检查用户在窗体字段中输入的值是否介于最小值与最大值之间 + +###### 1,属性 + +| 属性 | 说明 | +| ----------------- | ------------------------------------------------------------ | +| ControlToValidate | 指定将要检查其值的控件,它 具有该控件的ID值 | +| ErrorMessage | 指定在页面中使用ValidationS immary控件时该控件中显示的错误消息 | +| MaximumValue | 指定容许为此控件设置的最大值 | +| MinimumValue | 指定容许为此控件设置的最小值 | +| Type | 设置控件所验证的数据类型 | + + + +##### 4,RegularExpressionValidator控件 + +* 检查用户是否输入了正则表达式 + +###### 1,属性 + +| 属性 | 说明 | +| -------------------- | ------------------------------------------------------------ | +| ControlToValidate | 用于指定将要检查其值的控件。它具有该控件的ID值 | +| ErrorMessage | 用于指定在页面中使用ValidationSummary控件时该控件中显示的错误信息 | +| Text | 此属性用于指定验证控件后出现错误时将会显示的错误信息 | +| ValidationExpression | 次属性指定用于检查用户所输入值的正则表达式。输入的值应与正则表达式匹配 | + +###### 2,方法 + +| 方法 | 说明 | +| ---------- | ------------------------------------------------------------ | +| Validate() | 此方法用于执行验证,它将根据验证的成功情况将IsValid属性更改为True或False | + + + +##### 5,CustomValidator控件 + +* 根据用户指定的若干标准对控件进行验证 + +###### 1,属性 + +| 属性 | 说明 | +| -------------------- | ------------------------------------------------------------ | +| ControlToValidate | 用于指定将要检查其值的控件,它具有该控件的ID值 | +| Enabled | 启用或禁用窗体的客户端和服务器端验证,默认值是Truc | +| ErrorMessage | 用于指定在窗体中使用ValidationSummary控件时该控件中显示的错误信息 | +| Is Valid | 检查验证检查是否已经成功,如果已经成功,则将具有值True,否则将具有值False | +| Text | 指定验证控件后出现错误时将会显示的错误信息 | +| ValidationExpression | 此属性指定用于检查用户所输入值的正则表达式。输入的值应与正则表达式匹配 | + +###### 2,方法 + +| 方法 | 说明 | +| ---------- | ------------------------------------------------------------ | +| Validate() | 执行验证。它将根据验证的成功情况将IsValid属性更改为True或False | + +###### 3,事件 + +| 事件 | 说明 | +| -------------- | ---------------------------- | +| ServerValidate | 使用专用功能执行服务器端验证 | + + + +##### 6,ValidationSummary控件 + +* 用于显示窗体中各种验证控件生成的所有错误的汇总 + +###### 属性 + +| 属性 | 说明 | +| -------------- | ------------------------------------------------------------ | +| DisplayMode | 此属性用于指定将以打 滴要形式显示错误消息的方式。它将为下列任意 一种方式:BulletList SingleParagraph | +| Enabled | 用于启用或禁用窗体中 中的客户端和服务器端验证。默认值为 True | +| ShowMessageBox | 此属性用于激活弹出主式消息框,以便显示窗体中的错误。为此必须将其设置为True,若为 False则在页面列出错误点 | + +##### 7,验证控件分组 + +##### 8,Page.IsValid属性 + + + + + + + +### 四,Response,Request和Server对象 + +#### 1,==Response对象== + +* 用法: + +``` +类似于输出:Response.Write() +跳转页面:Response.Redirect("") 括号内填地址 +``` + +##### 1,HttpResponse类主要可用于; + +* 将文本写入到输出页面。 +* 读取/写入Cookie(Cookie将在下一单元介绍)。 +* 将用户从请求页面重新定向到另一页面。 +* 结束基于某些条件的应用程序连接。 +* 为某种操作设置或获得输出内容的类型。 +* 检查客户端是否仍然与服务器相连。 + +##### 2,属性 + +| 属性 | 用途 | +| ------------ | ------------------------------------------------------------ | +| Bufier | 指定在处理完毕当前页面中的所有服务器脚本,或调用Flush或End方法之前,是否将aspx页面创建的输出存储在IIS缓冲中 | +| Cache | 获得网页的缓存策略(过期时间、保密性等) | +| ContentType | 获得或指定响应的HTTP 内容(MIME)类型为标准MIME类型(如text/xml或 image/gin)。默认的MIME类型是text/html。户端测览器从输出流中指定的MIME类型获得内容的类型 | +| ==Cookic== | 用于获得Htp Response对象的Cookie集合 | +| Expires | 指定浏览器中缓存的页面过期之前的时间(以分钟为单位)。如果在页面过期前用户返回到同一页面,则显示缓存的版本 | +| Output | 启用到输出HTTP响应流的文本输出 | +| OutputStream | 启用到输出HTTP内容主体的二进 制输出,并作为响应的一部分 | + +##### 3,方法 + +| 方法 | 说明 | +| -------------- | ------------------------------------------------------------ | +| ==Write()== | 用于向当前HTTP响应流写入文本 使其成为返回页面的一部分 | +| End() | 将当前所有缓冲的输出发送到客户端,停止该页的执行,并触发Application对象的EndRequest事件(Application对象 将在下一单元讨论) | +| ==Redirect()== | 将用户从请求页面重新定向或转到 另一页面 | + + + + + +#### 2,==Request对象== + +##### 1,属性 + +| 属性 | 用途 | +| --------------- | ------------------------------------------------------------ | +| Browser | 获得有关请求浏览器功能的信息 | +| Form | 获得网页中定义的窗体变量的集合 | +| QueryString | 获得以名/值对表示的HTTP查询字符串变量的集合 | +| Params | 获取 QueryString、Form、Serven Variables 和Cookies 项的组合集合 | +| ServerVariables | 获取Web 服务器变量集合 | +| Url | 获取有关当前请求的URL 的信息 | + +##### 2,方法 + +| 方法 | 说 明 | +| ----------- | ------------------------------------------------------------ | +| MapPath() | 返回类型:字符串。将请求 URL 中提供的虚拟路径映射到服务器上的实际物理路径 | + + + +#### 3,==Server对象== + +##### 1,Execute()方法和Transfer()方法 + +* Execute:URL参数指定的页面处理完后,控制权会返回给先前的页面或者调用此方法的页面,并且从此方法调用后的语句继续执行 +* Transfer: URL参数指定的页面处理完后,控制权不会返回给先前的页面,也不会返回给调用此方法的页面,并且在新页面完成执行时结束 + + + + + +### 五,Application,Cookie和Session对象 + +#### 1,==Session对象== + +##### 1,属性与方法 + +| 属性 | 说明 | +| ------------------------------ | ------------------------------------------------------------ | +| SessionID | 包含一个唯一的用户会话标识符。它用于在会话过程中跟踪用户的信息。要检索 SessionID,使用 Session.SessionID | +| TimeOut | 设置用户超时,即它以分钟为单位指定 Session 对象在释放资源之前能够保持闲置的时间。用户可导航至另一个站点而不用关闭该应用程序。如果设定了超时属性,则无人操作的用户会话可被清除,由此释放服务器的资源。 默认值为 20 分钟。可通过在 ASPX 文件中赋值来更改此设置。例如,<% Session.Timeout = 10 %> | +| 方法 | 说明 | +| Add(stirng name, object value) | 添加键值对 | +| Remove(string name) | 根据键删除指定项 | +| Clear() | 从会话状态集合中移除所有的键值 | +| Abandon() | 结束Session,取消当前会话 | + + + +#### 2,==Cookie对象== + +##### 1,分类 + +* 会话Cookie + + ```asp + HttpCookie objHttpCookie = new HttpCookie("UserName","张三"); + + Response.Cookies.Add(objHttpCookie); + ``` + + + +* 持久性Cookie;具有生命周期,即有固定的过期日期 + + ``` + HttpCookie objHttpCookie = new HttpCookie("UserName","张三"); + + objHttpCookie.Expires = DateTime.Now.AddMinutes(2); + + Response.Cookes.Add(objHttpCookie); + ``` + + + +##### 2,Cookie对象的特点: + +* 存储少量不重要的数据 +* 存储在客户端的文本文件中,(必须设置有效期,否则不被存储) +* 安全性差 +* ==存储的数据类型----字符串== +* 与浏览器窗口无关,但与访问站点有关 +* 具有特定的过期时间和日期 +* 在客户端存储后,将随着浏览器对相关网站页面请求一并发送到Web服务器 + +##### 3,创建方法 + +```asp +方法一: +Response.Cookies[Cookie名].Value = 变量值; +方法二: +HttpCookie hc = new HttpCookie(Cookie名称,变量值) +Response.Cookies.Add(hcCookie); + +设置有效期:DateTime.Now.AddDays(1.0) + +读取方法: + string 变量名 = Request.Cookies[Cookie名称].Value + + +注意:创建Cookie使用Response,读取用Request + +``` + + + + + +#### 3,==Application对象== + +##### 1,Lock()方法;对应用程序变量进行锁定或解锁 + +```asp +Application.Lock(); +``` + + + +##### 2,UnLock()方法;对应用程序变量进行锁定或解锁 + +``` +Application.UnLock(); +``` + + + + + +### 六,数据绑定与控件的使用 + +#### 1,概述 + +* “数据绑定”的意思是将控件与存储在数据源中的信息绑定在一起。数据源可以像页面上的公共属性那样简单,也可以像存储在服务器上的数据库那样复杂。 + + + +#### 2,数据源控件列表 + +| 名称 | 说明 | +| ----------------- | ------------------------------------------------------------ | +| AccessDataSource | 使用户能够处理Microsoft Access数据库 | +| LinqDataSource | 使用此控件,可以通过标记在 ASP.NET 网页中使用语言集成查询(LINQ),从数据对象中检索和修改数据,支持自动生成选择、更新、插入和删除命令。 该控件还支持排序、筛选和分页 | +| ObjectDataSource | 允许用户使用业务对象或其他类,并创建依赖于中间层对象来管理数据的Web应用程序 | +| SiteMapDataSource | 与ASP.NET 站点导航结合使用 | +| SqlDataSource | 使用户能够处理ADO.NET 托管数据提供程序,该提供程序提供对Microsoft,SQL Server、OLE DB、ODBC 或 Oracle数据库的访问 | +| XmlDataSource | 使用户能够处理XML文件,该X ML 文件对诸如TreeView或Menu控件等分层ASPNET 服务器控件极为有用 | + + + +#### 3,数据绑定控件简介 + +##### 1,常用的数据绑定控件 + +| 控件名称 | 说明 | +| ------------ | ------------------------------------------------------------ | +| GridView | 以表的形式显示数据,并支持在不编写代码的情况下对数据进行编辑、 更新、删除、排序和分页 | +| DetailsView | 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView控件通常用在主/详细信息方案中,在这种方案中,主控件(如GridView控件)中的所选记录决定了DetailsView控件显示的记录 | +| FormView | FormView控件与DetailsView控件类似,它一次呈现数据源中的一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FonnView控件与 DetailsView控件之间的差别在于:DetailsView控件使用基于表格的布局,而 FormView则使用自定义布局 | +| Repeater | Repeater控件使用数据源返回的一组记录呈现只读列表。Repeater控件使用自定义布局 | +| DataList | DataList控件以表的形式呈现数据,通过该控件,用户可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。用户可以对DataList控件进行配置,使用户能够编辑或删除表中的记录(DataList控件不使用数据源控件的数据修改功能,必须自己提供此代码) | +| DropDownList | DropDownList下拉菜单控件,供用户进行下拉选择 | +| TreeView | TreeView以可展开节点的分层树的形式呈现数据 | +| Menu | 在可以包括子菜单的分层动态菜单中呈现数据 | + + + +#### 4,控件的使用 + +##### 1,基本控件 + +* **文本类型控件: Label、 Literal、TextBox、HiddenField** + +| Label | 打印标签 | +| --------------- | ------------------------------------------------------------ | +| **Literal** | 纯文本,不生成任何多于代码 | +| **TextBox** | 在页面上显示一个可编辑的文本框 常用属性: ReadOnly:获取或设置一个值,用于指示能否更改TextBox控件的内容 | +| **HiddenField** | | + +##### 2,**按键类控件** + +* **按键类控件;Button,LinkBotton,imageBotton** + +**HyperLink** + +| 属性 | 说明 | +| ------------ | ---------------------------------------- | +| Text | 一段简短的描述性文本,用于指定链接的用途 | +| Target | 链接的目标窗口/框架。 | +| NavigateUrl | 单击链接时用户即将链接到的页面网址或URL | +| ==ImageUrl== | 指定用于链接的图像URL | + +##### 2,选择类控件 + +| 属性 | | +| ---------------- | -------------- | +| ListBox | 列表框 | +| ==DropDownList== | 下拉列表框控件 | +| ==RadioButton== | 单选按钮 | +| CheckBox | 复选框 | + +###### **1,ListBox** + +| **属性** | **说明** | +| ------------- | -------------------------------------------------------- | +| Items | 获取列表控件项的集合 | +| SelectionMode | Single 单选 Multiple 多选 | +| SelectedIndex | 获取或设置列表控件中选定项的最低序号索引 | +| SelectedItem | 获取列表控件中选定项的最低序号索引 | +| SelectedValue | 获取列表控件中选定项的值,或选择列表控件中包含指定值的项 | +| Rows | 获取或设置ListBox控件中显示的行数 | +| DataSource | 获取或设置对象,数据绑定控件从该对象中检索其数据项列表 | +| ID | 获取或设置分配给服务器控件的编程标识符 | + +###### 2,==DropDownList控件== + +| **名** **称** | **说** **明** | +| -------------------- | ------------------------------------------------------------ | +| AutoPostBack | 选择一个列表项时DropDownList控件状态是否发回到服务器的值(True/False) | +| DataMember | 获取或设置数据源中的特定表格以绑定到该控件 | +| DataSource | 获取或设置填充列表控件的组成项的数据源 | +| DataTextField | 获取或设置提供列表项文本内容的数源的字段 | +| DataTextFormatString | 获取或设置用于控制如何显示绑定到列表控件的数据的格式字符串 | +| DataValueField | 获取或设置提供列表项文本内容的数据源的字段 | +| Items | 获取或者设置选项的值 | +| 事 件 | 说 明 | +| SelectedIndexChanged | 当从列表控件选择的内容在发布到服务器的操作之间发生变化时发生 | + +###### 3,==RadioButton控件== + +| **属 性** | **说 明** | +| --------------- | ------------------------------------------------- | +| AutoPostBack | 当选定内容更改后,自动回发到服务器 | +| RepeatDirection | 获取或设置在RadioButtonList控件了子选项的排列方向 | +| RepeatColumns | 获取或设置要在RadioButtonList控件中显示的列数 | +| RepeatLayout | 获取或设置单选按钮的布局 | +| Items | 列表中项的集合 | +| TextAlign | 获取或设置与控件相关联文本的对齐方式 | + +###### 4,**CheckBox** + +| **属 性** | **说 明** | +| --------------- | ------------------------------------------ | +| AutoPostBack | 当选定内容更改后,自动回发到服务器 | +| RepeatColumns | 获取或设置CheckBoxList中显示的列数 | +| RepeatDirection | 获取或设置CheckBoxList中各个选项的排列顺序 | +| Items | 列表中项的集合 | +| TextAlign | 获取或设置与CheckBoxList关联文本的对齐方式 | + + + + + +##### 3,验证控件 + +###### 1,非空验证:RequiredFieldValidator控件 + +| **属** **性** | **说** **明** | +| ----------------- | ------------------------------------------------------------ | +| ControlToValidate | 用于指定将要检查其值的控件,它具有该控件的ID值 | +| ErrorMessage | 用于指定在窗体中同时使用ValidationSummary控件与RequierdFieldValidator控件时前者中显示的错误信息。如果未设置文本属性,则此属性将用于显示窗体中的错误 | +| ForeColor | 错误提示文字颜色 | +| 方 法 | 说 明 | +| Validate | 此方法用于执行验证。它将根据验证的成功情况将IsValid属性更改为True或False | + +###### 2,比较控件:CompareValidator控件 + +| **属** **性** | **说** **明** | +| ---------------- | ------------------------------------------------------------ | +| ContrlToCompare | 指定用来比较值的控件的ID | +| ContrlToValidate | 指定将要验证的控件的ID | +| ErrorMessage | 在页面中使用ValidationSummary控件时显示错误消息 | +| Text | 用于指定验证控件后出现错误时将会显示的错误信息 | +| ValueToCompare | 指定与所验证控件中的值相比较的值 | +| 方 法 | 说 明 | +| Validate | 执行验证,它将根据验证的成功情况将IsValid属性更改为True或False | +| Operator | 执行的操作类型 | + +###### 3,范围验证:RangeValidator控件 + +| **属 性** | **说 明** | +| ----------------- | ------------------------------------------------------------ | +| ControlToValidate | 指定将要检查其值的控件,它具有该控件的ID值 | +| ErrorMessage | 指定在页面中使用ValidationSummary控件时该控件中显示的错误消息 | +| MaximumValue | 指定容许为此控件设置的最大值 | +| MinimumValue | 指定容许为此控件设置的最小值 | +| Type | 设置控件所验证的数据类型 | + +###### 4,ValidationSummary控件 + +| **属** **性** | **说** **明** | +| -------------- | ------------------------------------------------------------ | +| DisplayMode | 此属性用于指定将以摘要形式显示错误消息的方式。它将以为下列任意一种方式:BulletList、或SingleParagraph | +| Enabled | 用于启用或禁用窗体中的客户端和服务器端验证。默认值为True | +| ShowMessageBox | 此属性用于激活弹出式消息框,以便显示窗体中的错误。为此必须将其设置为True,若为False则在页面列出错误点 | + + + + + + + +### 七,ADO.NET连接数据库 + +#### 1,分类; + +* 1. 连接式访问:整个操作过程中需要保持数据库的连接。(DataReader) + 2. 断开式访问:只需要在执行数据库命令时保持数据库连接。(DateAdapte) + +#### 2,简介; + +* ADO.NET通过数据处理将数据访问分解为多个可以单独使用或者一前一后使用的不连续组件。 + +#### 3,对象 + +* ADO.NET主要包括==Connection==、==Command==、DataReader、DataSet、==DataAdapter==对象。 + +| 对象 | 简介 | +| --------------- | ------------------------------------------------------------ | +| ==Connection== | 主要提供与数据库的连接功能 | +| ==Command== | 用于返回数据、修改数据、运行存储过程、以及发送或检索参数信息的数据库命令 | +| DataReader | 通过Command对象提供从数据库检索信息的功能。以只读的,向前的,快速的方式访问数据库。 | +| DataSet | 中心概念,支持ADO.NET断开式、分布式的数据方案的核心对象。是一个数据库容器,可以把它当作内存当中的数据库。DataSet是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型;它可以用于多种不同的数据源,如用于访问XML数据或用于管理本地应用程序的数据 | +| ==DataAdapter== | 提供连接DataSet对象和数据源的桥梁,它使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并确保DataSet中的数据更改与数据源一致。 | + + + +##### 1,==Connection对象== + +* **SqlConnection con = new SqlConnection(“Server=服务器名; User Id = 用户; pwd=密码; DataBase=数据库名称”);** + +| 参数 | 说明 | +| --------------------------- | ------------------------------------------------------------ | +| Connection Timeout | 在终止尝试并产生异常前,等待连接到服务器的连接时间长度。 | +| Initial Catalog 或 Database | 数据库名称 | +| Data Source 或 Server | 连接打开时使用的SQL Server名称(.) | +| Password 或 pwd | SQL Server登录密码 | +| User ID 或 uid | SQL Server用户名 | +| Integrated Security | 此参数决定连接是否为安全连接,可能的值有true、false和SSPI(SSPI是true的同义词) | + +``` +列; + +//创建连接数据库的字符串 +string conStr="server=.;uid=sa;pwd=123456;database=LoginTest;" +//1.创建Sq1Connection对象 +//设置Sq1Connection对象连接数据库的字符串 +SqlConnection connection = new Sq1Connection(conStr); + +//2.打开数据库的连接 +connection.Open(); + +//3.数据库相关操作 +..... + +//4.关闭数据库的连接 +connection.Close(); +``` + + + +##### 2,==Command对象== + +* 使用Connection对象与数据源建立连接后,可使用Command对象对数据源执行查询、添加、删除和修改 + 等各种操作,操作实现的方式可以是使用SQL语句,也可以是使用存储过程。 + +| **属性** | **说明** | +| -------------- | -------------------------------------------------------- | +| CommandType | 获取或设置Command对象要执行命令的类型 | +| CommandText | 获取或设置要对数据源执行的SQL语句、存储过程名或表名 | +| CommandTimeOut | 获取或设置在终止对执行命令的尝试并生成错误之前的等待时间 | +| Connection | 获取或设置此Command对象使用的Connection对象的名称 | +| Parameters | 获取Command对象需要使用的参数集合 | + +| **方法** | **说明** | +| ------------------- | ------------------------------------------------ | +| ==ExecuteNonQuery== | 执行SQL语句并返回受影响行数: 增删改 | +| ==ExecuteReader== | 执行返回数据集的Select语句: 查 | +| ==ExecuteScalar== | 执行查询,并返回查询所返回的结果集中第1行的第1列 | + +``` +列; + +//1.创建链接数据库的操作 +SqlConnection connection =new SqlConnection(conStr): +//2.打开数据库 +connection.Open(); +//3.执行非查询的Sq1语句 +SqlCommand command =new SqlCommand(sql,connection); +//4.获取返回结果 +int result = command.ExecuteNonQuery(): +//5.关闭数据库 +connection.Close(): +//6.返回影响的行数 return result; +``` + +```asp +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace WebApplication2.NewFolder1 +{ + public partial class WebForm1 : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + Bound(); + } + } + + protected void Bound() + { + string sql = "select * from IntroMovies"; + DataTable dt = NewFolder2.Class1.GETTABLE(sql); + + GridView1.DataSource = dt; + GridView1.DataBind(); + + } + + + protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e) + { + + + } + + protected void GridView1_RowDeleting1(object sender, GridViewDeleteEventArgs e) + { + int uID = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString()); + string sql = $"delete from userAccount where uID={uID}"; + int result = NewFolder2.Class1.Execute(sql); + if (result > 0) + { + Response.Write(""); + } + else + { + Response.Write(""); + } + Bound(); + } + } +} + + + + +//另一个WebApplication2.NewFolder2的类中 +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Data; +using System.Data.SqlClient; + +namespace WebApplication2.NewFolder2 +{ + public static class Class1 + { + static string constr = $"server=.;uid=sa;pwd=123456;database=movies"; + + public static DataTable GETTABLE(string sql) + { + SqlDataAdapter adapter = new SqlDataAdapter(sql, constr); + DataTable data = new DataTable(); + adapter.Fill(data); + return data; + } + public static int Execute(string sql) + { + int result=0; + + SqlConnection connection = new SqlConnection(constr); + connection.Open(); + + SqlCommand command = new SqlCommand(sql,connection); + result = command.ExecuteNonQuery(); + + connection.Close(); + + return result; + + + } + } +} +``` + + + + + + + + + +### 八,数据源==GridView== + +#### 1,优点 + +* 通过数据源控件将数据绑定到GridView 控件。 +* 对GridView 控件内的表格数据进行选择、编辑和删除操作。、 +* 对GridView 控件内的表格数据进行排序。 +* 对GridView 控件内的数据进行分页显示。 +* 通过指定GridView 控件的模板列,创建自定义的用户界面。 +* 通过GridView 控件提供的事件模型,完成用户复杂的事件操作。 +* 可以自定义数据显示的列和行的显示风格。 + +#### 2,类型 + +| 列类型 | 说明 | +| -------------- | ------------------------------------------------------------ | +| BoundField | 显示数据源中某个字段的值,是GridView控件的默认列类型。 | +| ButtonField | 为GridView控件中的每个项显示一个命令按钮。可以创建一列自定义按钮控件,如“添加”按钮或“移除”按钮。 | +| CheckBoxField | 为GridView控件中的每一项显示一个复选框。此列字段类型通常用于显示布尔值的字段。 | +| CommandField | 显示用来执行选择、编辑或删除操作的预定义命令按钮 | +| HyperLinkField | 将数据源中某个字段的值显示为超链接。此列字段类型允许将另一个字段绑定到超链接的URL中 | +| ImageField | 为GridView控件中的每一项显示一个图片。 | +| TemplateField | 根据指定的模板为GridView控件中的每一项显示用户定义的内容,此列字段类型允许创建自定义字段。 | + +#### 3,分页与排序 + +* GridView 控件可自动将数据源中的所有记录分成多页。**若要启用分页功能,需要将AllowPaging 属性设置为true。** +* GridView 控件的**排序功能是通过将GridView 控件的AllowSorting 属性设置为true** ,即可启用该控件中的默认排序行为。 \ No newline at end of file -- Gitee