github地址:
https://github.com/ixixii/ASP.NET_02_WebForms
控件是在图形用户界面中的小功能块,其中包括文本框,按钮,复选框,列表框,标签,和许多其它工具。利用这些工具,用户可以输入数据,进行选择并注明自己的喜好。
控件也用于结构性工作,如验证,数据访问,安全保证,创建母版页和数据操作。
ASP.NET 使用五种类型的 Web 控件,它们是:
ASP.NET 服务器控件是在 ASP.NET 中使用的主要控件。这些控件可被分成以下几类:
使用服务器控件的基本语法是:
此外,Visual Studio还具有以下特点,以帮助产生无差错代码:
具有可视化功能的 ASP.NET 服务器控件来源于 WebControl 类,并且继承该类别的所有属性,事件以及方法。
WebControl 类本身以及其他不具有可视化功能的服务器控件都来源于 System.Web.UI.Control 类。例如,PlaceHolder 控件或 XML 控件。
ASP.Net 服务器控件继承了 WebControl 和 System.Web.UI.Control 类的所有属性,事件,以及方法。
下表显示了通用于所有服务器控件的属性:
属性 | 描述 |
---|---|
AccessKey | 同时按下该按键以及 Alt 键以将焦点移至控件。 |
Attributes | 它是不对应控件属性的任意属性(仅用于视图呈现)的集合。 |
BackColor | 背景色。 |
BindingContainer | 包含数据绑定的控件。 |
BorderColor | 边框颜色。 |
BorderStyle | 边框样式。 |
BorderWidth | 边框宽度。 |
CausesValidation | 引起验证时显示。 |
ChildControlCreated | 表示服务器控件的子控件是否建立。 |
ClientID | HTML 标记的控件 ID。 |
Context | 与服务器控件关联的 HttpContext 对象。 |
Controls | 控件内全部控件的集合。 |
ControlStyle | Web 服务器控件的样式。 |
CssClass | CSS 类。 |
DataItemContainer | 若命名器执行 IDataItemContainer,则为命名器提供参考。 |
DataKeysContainer | 若命名器执行 IDataKeysControl,则为命名器提供参考。 |
DesignMode | 表示控件在设计界面是否被使用。 |
DisabledCssClass | 当控件禁用时,获取或设置 CSS 类来应用呈现的 HTML 元素。 |
Enabled | 表示控件是否被禁用。 |
EnableTheming | 表示主题是否适用于控件。 |
EnableViewState | 表示是否维持控件的视图状态。 |
Events | 获取代表控件的事件处理程序的列表。 |
Font | 字体设定。 |
Forecolor | 前景颜色。 |
HasAttributes | 表示控件是否具有属性组。 |
HasChildViewState | 表示当前服务器控件的子控件是否具有任何已保存的视图状态设置。 |
Height | 高度的像素或百分比。 |
ID | 控件的标识符。 |
IsChildControlStateCleared | 表示包含在该控件内部的控件是否具有控件状态。 |
IsEnabled | 获取表示控件是否被启用的值。 |
IsTrackingViewState | 表示服务器控件是否会将更改保存到其视图状态。 |
IsViewStateEnabled | 表示视图状态是否对该控件启用。 |
LoadViewStateById | 表示控件是否是由 ID 而非索引来参与加载其视图状态。 |
Page | 包含控件的页面。 |
Parent | 家长控制功能。 |
RenderingCompatibility | 指定呈现的 HTML 将与之兼容的 ASP.NET 版本。 |
Site | 当设计界面显示时容纳当前控件的承载器。 |
SkinID | 获取或设置适用于控件的皮肤。 |
Style | 获取将在 Web 服务器控件的外部标签作为样式属性显示的文本属性的集合。 |
TabIndex | 获取或设置 Web 服务器控件的索引标签。 |
TagKey | 获取对应该 Web 服务器控件的 HtmlTextWriterTag 值。 |
TagName | 获取控件标签的名称。 |
TemplateControl | 包含该控件的模板。 |
TemplateSourceDirectory | 获取页面的虚拟目录或包含在该控件中的控件。 |
ToolTip | 获取或设置当鼠标指针停在 Web 服务器控件时显示的文本。 |
UniqueID | 唯一的标识符。 |
ViewState | 获取能够穿越同一页面的多重请求后保存和恢复服务器控件视图状态的状态信息词典。 |
ViewStateIgnoreCase | 表示 StateBag 对象是否不区分大小写。 |
ViewStateMode | 获取或设置该控件的视图状态。 |
Visible | 表示服务器控件是否可见。 |
Width | 获取或设置 Web 服务器控件的宽度。 |
服务器控件的方法在以下表格中呈现:
方法 | 描述 |
---|---|
AddAttributesToRender | 添加需要呈现指定 HtmlTextWriterTag 的 HTML 属性和样式。 |
AddedControl | 在子控件添加到控件对象的控件集合后调用。 |
AddParsedSubObject | 通报服务器控件一个元素,XML 或 HTML 已被解析,并将该元素添加到服务器控件的控件集合。 |
ApplyStyleSheetSkin | 将在页面样式表中定义的样式属性应用到控件中。 |
ClearCachedClientID | 基础设施。设置缓存的 ClientID 值设置为 null。 |
ClearChildControlState | 为服务器控件的子控件删除控件状态信息。 |
ClearChildState | 为所有服务器控件的子控件删除视图状态和控件状态信息。 |
ClearChildViewState | 为所有服务器控件的子控件删除视图状态信息。 |
CreateChildControls | 用于创建子控件。 |
CreateControlCollection | 创建一个用于保存子控件的新控件集合。 |
CreateControlStyle | 创建一个用于实现所有与样式有关的属性的样式对象。 |
DataBind | 将数据源绑定到服务器控件及其所有子控件。 |
DataBind(Boolean) | 将数据源及可以引发 DataBinding 事件的选项绑定到服务器控件及其所有子控件。 |
DataBindChildren | 将数据源绑定到服务器控件的子控件。 |
Dispose | 启用一个服务器控件在其从内存中释放出来前去执行最后的清理操作。 |
EnsureChildControls | 确定服务器控件是否包含子控件。若没有,则创建子控件。 |
EnsureID | 为没有标识符的控件创建一个标识符。 |
Equals(Object) | 确定指定对象是否等于当前对象。 |
Finalize | 允许一个对象去尝试释放资源并在对象被回收站回收前执行其他清理操作。 |
FindControl(String) | 搜索当前命名容器中具有指定 id 参数的服务器控件。 |
FindControl(String, Int32) | 搜索当前命名容器中具有指定 id 参数和整数的服务器控件。 |
Focus | 为控件设置输入焦点。 |
GetDesignModeState | 获取控件的设计时数据。 |
GetType | 获取当前实例的类型。 |
GetUniqueIDRelativeTo | 返回指定控件的唯一 ID 属性的预固定部分。 |
HasControls | 确定服务器控件是否包含子控件。 |
HasEvents | 表示事件是否被控件或其他子控件注册。 |
IsLiteralContent | 确定服务器控件是否仅含有文字内容。 |
LoadControlState | 恢复控件状态信息。 |
LoadViewState | 恢复视图状态信息。 |
MapPathSecure | 检索绝对的或相对的虚拟路径映射到的物理路径。 |
MemberwiseClone | 创建当前对象的浅复制。 |
MergeStyle | 复制指定样式的 Web 控件的任意非空白元素,但不覆盖该控件现有的任何样式元素。 |
OnBubbleEvent | 确定服务器控件的事件是否通过页面的 UI 服务器控件层级。 |
OnDataBinding | 引发数据绑定事件。 |
OnInit | 引发 Init 事件。 |
OnLoad | 引发加载事件。 |
OnPreRender | 引发 PreRender 事件。 |
OnUnload | 引发卸载事件。 |
OpenFile | 获取用于读取文件的流。 |
RemovedControl | 在子控件从控件对象的控件集合中移除后调用。 |
Render | 显示控件到指定的 HTML 作者。 |
RenderBeginTag | 显示控件的 HTML 开口标签到指定作者。 |
RenderChildren | 输出服务器控件子级的内容到提供的 HtmlTextWriter 对象中,从而编写呈现在客户端上的内容。 |
RenderContents | 显示控件内容到指定作者。 |
RenderControl(HtmlTextWriter) | 输出服务器控件内容到提供的 HtmlTextWriter 对象并在启用跟踪的情况下保存关于控件的跟踪信息。 |
RenderEndTag | 显示控件的 HTML 结束标签到指定作者。 |
ResolveAdapter | 获取负责呈现指定控件的控件适配器。 |
SaveControlState | 保存自页面回发到服务器后出现的服务器控件的状态改变。 |
SaveViewState | 保存调用 TrackViewState 方法之后修改的任意状态。 |
SetDesignModeState | 为控件设置设计时数据。 |
ToString | 返回代表当前对象的字符串。 |
TrackViewState | 引发控件跟踪其视图状态的变化,使其可以存储在该对象的视图状态属性中。 |
让我们来看一看一个特定的服务器控件 - 树型视图控件。
树视图控件属于导航控件。
其他导航控件是:菜单控件和 SiteMapPath 控件。
在页面上添加树视图控件。从任务中选择编辑结点...使用树视图结点编辑器编辑每个结点,如下所示:
当成功创建结点之后,设计视图下会有如下显示:
AutoFormat... 任务允许您规定树视图的格式,如下所示:
在页面上添加一个标签控件和文本框控件并分别命名为 lblmessage 和 txtmessage。
写几行代码,以确保当一个特定结点被选中时,标签控件显示结点文字且文本框显示所有其下的子结点(如有)。后台文件的代码应如下所示:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace eventdemo {
public partial class treeviewdemo : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
txtmessage.Text = " ";
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) {
txtmessage.Text = " ";
lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text;
TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes;
if(childnodes != null) {
txtmessage.Text = " ";
foreach (TreeNode t in childnodes) {
txtmessage.Text += t.Value;
}
}
}
}
}
执行页面以观看效果,您将可以展开和折叠结点。
本节介绍了 ASP.NET 中使用的两种向网页上传文件的方法。
ASP.NET 包含两个控件可以使用户向网页服务器上传文件。一旦服务器接受了上传的文件数据,那么应用程序就可以进行保存,进行检查或者忽略它。接下来的控件允许文件上传:
两种控件都允许文件上传,但是 FileUpload 控件自动设置编码格式,然而 HtmlInputFile 控件并不会这样。
本指导中,我们将应用 FileUpload 控件。这个控件允许用户预览选择将要上传的文件,它提供了一个预览按钮和一个可以输入文件名的文本框。
一旦用户在文本框中输入文件名或者预览文件,FileUpload 控件的 SaveAs 方法就会将文件保存到硬盘。
FileUpload 的基本语法如下:
FileUpload 类是从 WebControl 类中得出的,并且它继承了它的所有元素,FileUpload 类具有以下这些只读属性:
属性 | 描述 |
---|---|
FileBytes | 返回一组将要上传文件的字节码 |
FileContent | 返回将要被上传的的文件的流对象 |
FileName | 返回将以上传的文件名称 |
HasFile | 判断控件是否有文件需要上传 |
PostedFile | 返回一个关于已上传文件的参考 |
发布的文件以 HttpPostedFile 形式的对象进行封装,这个对象可以通过 FileUpload 类的 PostedFile 属性被存取。
HttpPostedFile 类具有以下常用的属性:
属性 | 描述 |
---|---|
ContentLength | 返回已上传的文件的字节大小 |
ContentT ype | 返回已上传的文件的 MIME 类型 |
FileName | 返回文件全名 |
InputStream | 返回将要被上传的的文件的流对象 |
下面的例子说明了 FileUpload 控件以及它的属性。这个表格有一个 FileUpload 控件以及一个保存按钮和一个真实文件名称、类型、长度的标签控件。
在设计模式下,表格如下图所示:
相关文件代码列示如下:
保存按钮的代码列示如下:
protected void btnsave_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
if (FileUpload1.HasFile)
{
try
{
sb.AppendFormat(" Uploading file: {0}", FileUpload1.FileName);
//saving the file
FileUpload1.SaveAs("" + FileUpload1.FileName);
//Showing the file information
sb.AppendFormat("
Save As: {0}", FileUpload1.PostedFile.FileName);
sb.AppendFormat("
File type: {0}", FileUpload1.PostedFile.ContentType);
sb.AppendFormat("
File length: {0}", FileUpload1.PostedFile.ContentLength);
sb.AppendFormat("
File name: {0}", FileUpload1.PostedFile.FileName);
}catch (Exception ex)
{
sb.Append("
Error
");
sb.AppendFormat("Unable to save file
{0}", ex.Message);
}
}
else
{
lblmessage.Text = sb.ToString();
}
}
注意以下问题:
HTML 服务器控件主要是保证服务端运行的增强型标准 HTML 控件。HTML 控件不是由服务器处理,而是被发送到浏览器进行显示,比如页面标题标签,链接标签及输入元素。
通过添加 runat = "server" 属性和一个 id 属性,它们可被特定地转化为一个服务器控件,应用于服务器端处理。
例如,HTML 输入控件:
它可以通过添加 runat 和 id 属性被转换成一个服务器控件:
尽管 ASP.NET 服务器控件可以完成 HTML 服务器控件执行的每一项工作,HTML 控件在以下情况仍然具有优势:
下面这个表格介绍了 HTML 服务器控件:
控件名称 | HTML 标签 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HtmlHead | element | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputButton | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputCheckbox | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputFile | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputHidden | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputImage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputPassword | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputRadioButton | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlInputReset | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlText | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlImage | element | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlLink | element | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlAnchor | element | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlButton | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlButton | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlForm | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HtmlTable |
实例以下实例使用了基本的 HTML 表格进行布局。它使用了用于从用户获得输入诸如姓名,地址,城市,州等的框,还有一个按钮控件,该控件被点击后能够获取该表最后一行中显示的用户数据。 页面在设计视图中应如下所示: 内容页面的代码表明了 HTML 表格元素进行布局的应用。
按钮控件的后台代码为:
观察以下陈述:
ASP.NET 广告轮转器
广告轮转器广告轮转控制器从一个列表里随机选择在外部 XML 定时文件中指定的横幅图像。这个外部 XML 定时文件被叫做广告文件。 广告轮转控件允许你指定一个广告文件和窗口的类型,链接应该分别遵循 AdvertisementFile 和 Target 的属性。 添加 AdRotator 的基本语法如下:
在了解 AdRotator 控件以及它的属性之前,让我们先来看看广告文件的构成。 广告文件广告文件是一种 XML 文件,它包括了广告所要被显示的信息。 可扩展标记语言(XML)是一种 W3C 的标准文本文档标记语言。它是一个基于文本的标记语言,它使您可以通过使用有意义的标签来让数据存储在结构化格式中。术语 'extensible' 意味着可以扩展功能,通过给应用程序定义有意义的标签来描述文档。 XML 本身不是一种语言,如 HTML ,而是一组用于创建新的标记语言的规则。它是一个元标记语言。它允许开发人员创建自定义标记集作特殊用途。它构建,存储并传输的信息。 下面是 XML 文件的一个例子:
像所有的 XML 文件,该广告文件需要被具有良好定义并标记的结构化文本文件来描绘数据。这里也有一些在广告文件中常用的标准 XML 元素:
除了这些标签,带有一般属性的习惯性的标签也可以被包含进去。下面的代码演示了一个广告文件,ads.xml:
AdRotator 类的属性和事件AdRotator 类是从 WebControl 类中派生的并且继承其属性。除了这些属性,AdRotator 类还具有以下属性:
以下是的 AdRotator 类的非常重要的事件:
使用 AdRotator 控件创建一个新的网页,并在其上放置一个 AdRotator 控件。
该 ads.xml 文件和图像文件应该位于网站的根目录。 试着执行上述应用程序,并观察到页面每次重载时,广告都被改变。
ASP.NET 客户端
客户端ASP.NET 的客户端编码有两方面:
客户端脚本所有 ASP.NET 服务器控件都允许响应通过 Java 语言或者 VBS 语言绘制的编码。有些 ASP.NET 服务器控件端使用客户端脚本进行对用户需求的反应,而并没有回发到服务器。例如,数据有效性控件。 除了这些脚本,按钮控件具有恰当的 OnClientClick 方法,能够在按钮单击时执行客户端脚本。 传统服务器 HTML 控件有以下几个事件能够在脚本发起时执行脚本:
客户端源代码我们已经在以上内容中讨论过了客户端源代码。ASP.NET 网页通常被编写在两种文件中:
内容文件包含 HTML 或者 ASP.NET 控件标签和文字来形成页面结构。代码后置的文件包含了分类定义。在运行时间,内容文件被解析并被传送到一个页面类。 这个页面类以及在编码文件中的类的定义和系统生成的编码共同组成执行编码(集成),这些集成编码加工所有的回发数据,产生响应和发回客户动作。 思考一下这个简单页面:
当这个页面在浏览器中运行时,View Source 选项显示了 HTML 网页并通过 ASP.Net 运行时间发送到浏览器:
如果恰当地浏览编码,您就会发现前两个 \ 标签包含了存储的视图状态和有效数据的隐藏域。
ASP.NET 日历
日历日历控件是一个功能丰富的网络控件,它提供了以下功能:
日历控件的基本的语法为:
日历控件的属性和事件日历控件有很多的属性和事件,使用它们你可以自定义操作并且控制显示。下表提供了日历控件的一些重要的属性:
日期控件有以下三个最重要的事件来允许开发者编写日期控件。它们是:
使用日历控件使用一个没有任何代码的初始的日历控件给网站提供一个有效的日历,以显示一年中的月份和日期。它也含有下个月和上个月的导航。 日历控件允许用户选择一天,一周,或一整个月。这是通过使用 SelectionMode 属性来实现的。这个属性有以下值:
选择日期的语法:
当选择模式选择为 DayWeekMonth 时,会出现一个用符号 > 标识的额外的列来选择星期,并且 >> 符号出现在天名的左边来选择月份。 例子下面的例子演示了选择一个日期并且显示在一个标签内: 内容文件代码如下:
事件处理程序的事件 SelectionChanged:
运行该文件时,它将生成以下输出:
ASP.NET 基础控件
基础控件这在一章节,我们将讨论在 ASP.NET 中有效的基础控件。 按钮控件ASP.NET 提供了三种不同类型的按钮控件:
当用户单击一个按钮时,两个事件被触发:单击和指令。 按钮控件的基础语法:
按钮控件的通用属性:
文本框和标签文本框控件是专门接受用户输入而设置。一个文本框控件可以依据文本模式的属性接受一条或多条文本的输入。 标签控件为显示文本提供了一个简单的方法,这种方法能够从执行一个页面到下一个页面。如果想要显示一个不变的文本,那么您可以使用文字文本。 正文控制的基本语法:
文本框和标签的通用属性:
大多使用属性的标签控件是 'Text',它代表在标签上显示的文本。 复选框和单选按钮一个复选框将显示一个选项,用户可以选中或取消。单选按钮呈现一组用户可以只选择一个选项的选项组。 如果要创建一组单选按钮,您可以为每个单选按钮组中的组名属性指定相同的名称。如果一个以上的组需要呈现一个单一的形式,则指定每个组不同的组的名称。 如果您想按照最初显示的形式来选中复选框或单选按钮,可将其选中属性为 true。如果多个单选按钮在一组的属性设置为 true,则只有最后一个被认为是 true。 复选框的基本语法:
单选按钮的基本语法:
复选框和单选按钮的通用属性:
列表控件ASP.NET 提供以下控件:
这些控件让用户可以从一个或多个项目列表中选择。列表框和下拉列表包含一个或多个列表项。这些列表可以通过代码或者由 ListItemCollection 编辑器被加载。 列表框控件的基本语法:
下拉列表控件的基本语法:
列表框和下拉列表的通用属性:
每个列表项对象的通用属性:
需要重点关注的是:
ListItemCollectionListItemCollection 对象是 ListItem 对象的集合。每个 ListItem 对象代表列表中的一个项目。在一个 ListItemCollection 中项目编号从 0 开始。 当一个列表框中的项目被加载过程中使用的字符串是比如:lstcolor.Items.Add ("Blue") 时,那么文字和列表项的值的属性设置是您指定的字符串值。为了以不同的方式设置,你必须创建一个列表项的对象,然后添加该项目到集合。 ListItemCollection 编辑器用于将项目添加到一个下拉列表或列表框。它被用来创建项目的静态列表。若要显示集合编辑器,则从智能标签菜单中选择编辑项目,或者选择控件,然后在属性窗口的项目属性中单击省略号按钮。 ListItemCollection 的通用属性:
ListItemCollection 的基本方法:
单选按钮列表和复选框列表单选按钮列表呈现互相排斥的选项列表。一个复选框列表列呈现独立选项的列表。这些控件包含 ListItem 对象的集合,它们可以通过控件的项目属性被参考。 单选按钮列表的基本语法:
复选框列表的基本语法:
复选框和单选按钮列表的通用属性:
项目符号列表和编号列表项目符号列表控件创建项目符号列表或编号列表。这些控件包含 ListItem 对象的集合,它们可以通过控件的项目属性被参考。 项目符号列表的基本语法:
项目符号列表的通用属性:
超链接控件超链接控件的基本语法:
它具有以下属性:
图像控件若图片无法显示,图像控件则在网页,或者一些替代文本上显示图片。 图像控件的基本语法:
它具有以下重要属性:
ASP.NET 多视图
多视图MultiView 和 View 控件允许你将一个页面的内容分成不同的组,一次只显示一组。每个视图控件管理一个组的内容,并且所有视图控件包括在 MultiView 控件中。 多视图控件一次只负责显示一个视图。视图显示称为活动视图。 MultiView 控件的语法是:
View 控制的语法是:
然而,该控件不能自行存在。如果您尝试单独使用它会出现错误。它总是和一个多视点控制器一起使用:
View 和 MultiView 控件的属性视图和多视图控件都来源于 Control 类。并继承其所有属性、方法和事件。视图控件的最重要属性是可视 Boolean 属性,它设置了一个视图的可见性。 多视图控件具有以下重要特性:
与 MultiView 控件的导航相关的按钮控制 CommandName 属性都与 MultiView 控件的一些相关字段关联。 例如,如果一个按钮控制的 CommandName 值作为与多视图的导航相关,单击按钮时它会自动导航到下一个视图中。 下表显示了上述属性的默认命令名:
多视点控制的重要方法是:
每一个视图改变时,页面被回传到服务器,同时一些事件被引发。一些重要的事件是:
除了上面提到的属性、方法和事件,多视图控件继承了控制和对象类的成员。 例子示例页面有三个视图。每个视图的导航视图有两个按钮。 内容文件的代码如下:
注意以下事项: MultiView.ActiveViewIndex 确定了哪些视图将要显示。这是页面上呈现的唯一视图。没有视图显示时 ActiveViewIndex 的默认值是 -1。 由于范例中 ActiveViewIndex 被定义为 2,所以被执行时它显示的是第三个视图。
ASP.NET 指令
指令ASP.NET 指令是指定可选设置的说明,如注册一个自定义的控制和页面的语言。这些设置介绍了 NET Framework 如何处理单页表单(.aspx)或用户控件(.ascx)网页。 下达指令的基本语法:
在这一部分中,我们将介绍 ASP.NET 指令,同时会在整个教程中应用大多数指令。 应用程序指令应用指令定义特定应用程序的属性。它是在 global.aspx 文件的顶部提供。 应用程序指令的基本语法:
应用程序指令的属性:
集合指令集合指令链接着一个网页链接的组件或在分析时的应用程序。这可能会出现在整个应用类型链接 Global.asax 文件中,页面文件中,用于链接到另一个网页的用户控件中或用户控件中。 集合控件的基本语法是:
集合控件的属性是:
控制指令控制指令是与用户控件一同使用并出现在用户控件(.ascx)文件中。 控制指令的基本语法是:
控制指令的属性是:
工具指令工具指令表明网页,母版页或者用户控制页必须执行具有详细说明的.Net 框架界面。 工具指令的基本语法是:
导入指令导入指令导入一个命名空间到用户控制应用程序的页面。如果在 global.asax 文件中指定了 Import 指令,那么会将其应用到整个应用程序。如果它是在用户控制页面的网页中,则会将其应用到该网页或控件中。 导入指令的基本语法是:
主要指令主要指令指定了一个页面文件作为主页。 样本主页指令的基本语法是:
MasterType 指令MasterType 指令指定一个类名到页面的主属性,强化其类型。 母版式指令的基本语法是:
输出缓存指令输出缓存指令控制网页或用户控件的输出缓存策略。 输出缓存指令的基本语法:
页面指令页面指令定义特定的页面分析器和编译器的页面文件的属性。 页面指令的基本语法是:
页面指令的属性是:
前页型指令前页型指令为一个页面分配类别,使得该页面类型被强化。 前页型指令的样本的基本语法:
参考指令参考指令表明另一个页面或用户控件应编译和链接到当前页面。 参考指令的基本语法是:
注册指令注册指令用于注册定制服务器控件和用户控件。 注册指令的基本语法是:
ASP.NET Panel 控件
Panel 控件Panel 控件可以作为一个页面上的其他控件的容器。它控制其包含的控件的外观和可视度。它还允许生成控件编程。 面板控件的基本语法如下:
面板控件从 WebControl 类派生。因此,它同样地继承了所有的属性、方法和事件。它不具有任何自己的方法或事件。然而,它有自己的以下属性:
使用面板控件让我们从一个具体的高度和宽度、边框样式简单的滚动面板开始。滚动条属性设置为两个滚动条,因此两个滚动条同时被呈现。 源文件具有如下的面板标签代码:
面板呈现如下: 例子下面的例子演示了动态内容生成。用户提供要在面板上产生的标签控件和文本框的数目。控件以编程方式生成。 用属性窗口更改面板属性。当您在设计视图中选择一个控件时,该属性窗口中将显示特定控件的属性,并允许您更改,而无需键入。 示例的源文件如下:
在 Page_Load 事件背后的负责动态生成的控件的源代码为:
当被执行时,面板呈现为:
ASP.NET 管理状态
管理状态超文本传输协议(HTTP)是一种无状态协议。当客户端从服务器断开连接时,ASP.NET 引擎将丢弃页面对象。这样一来,每个 Web 应用程序能够扩展到同时用于大量请求,但是不会耗尽服务器内存。 然而,需要有一些技术来存储各个请求之间的信息并在需要时取回。这个信息则称为状态,即所有控件的当前值和在当前会话中当前用户使用的变量。 ASP.NET 管理四种状态:
视图状态视图状态是页面及其所有控件的状态。它通过 ASP.NET 框架的反馈保持不变。 当一个页面被发送回客户端,这些页面变化的属性及其控件是确定的,并存储在名为 _VIEWSTATE 的一个隐藏输入字段的值内。当页面被再次回发时,_VIEWSTATE 字段随 HTTP 请求被发送到服务器。 视图状态可以对以下内容启用或者禁用:
它通过使用视图状态对象,该对象是由被一组视图状态项目定义的 StateBag 类别定义的。该 StateBag 是一种数据结构,包含属性值对并被存储为与对象相关联的字符串。 StateBag 类具有以下属性:
StateBag 类具有以下方法:
实例以下实例说明了存储视图状态的字符串的概念。 让我们保持一个计数器,通过点击页面上的一个按钮,该计数器能够在每次页面被调回时递增。标签控件显示计数器的值。 标记文件代码如下所示:
该实例的后台代码文件如下所示:
它将会生成以下结果: 控制状态控制状态不能被直接修改,存取或禁用。 会话状态当用户连接到 ASP.NET 网站,一个新的会话对象将被创建。当会话状态开启时,新的会话状态会为每一个新的请求而创建。这种会话状态对象会成为运行环境中的一部分并可通过页面使用。 会话状态通常用于存储应用程序数据,比如详细目录,供应商清单,客户记录或购物车。它可以存储用户的信息及其偏好信息,并保存用户未决定的路径。 会话由 120 位的 SessionID 识别和跟踪,从客户端传递到服务器并且作为 cookie 或修改的 URL 回传。SessionID 是全球唯一的,随机的。 会话状态对象由 HttpSessionState 类创建,它定义会话状态项集合。 HttpSessionState 类具有以下属性:
HttpSessionState 类有以下方法:
会话状态对象是一个名 - 值对,它可以从会话状态对象中存储和检索信息。同样地,您可以使用以下代码:
以上代码只存储在会话词典对象中的字符串,但是,它可以存储所有原始数据类型和由原始数据类型组成的阵列,DataSet, DataTable, HashTable, 和图像对象,以及继承 ISerializable 对象的任意用户定义的类。 实例以下实例说明了存储会话状态的概念。在页面上有两个按钮:输入字符串的文本框按钮和显示从最后一个会话中存储的文本的标签按钮。标记文件代码如下所示:
在设计视图中应有如下显示: 后台代码如下:
执行文件并观察其如何运行: 应用程序状态ASP.NET 应用程序是在 Web 服务器上所有网页,代码和单个虚拟目录的其他文件的集合。当信息被存储在应用程序状态,它可以供所有用户使用。 为了提供应用程序状态的使用,ASP.NET 从 HttpApplicationState 类中为每个应用程序创建一个应用程序状态对象,并将该对象存储在服务器内存中。该对象是由类文件 global.asax 表示。 应用程序状态主要被用于存储计数器,其他统计数据及税率,折扣率等所有应用程序数据,并存储用户访问网站的路径。 HttpApplicationState 类具有以下属性:
HttpApplicationState 类具有以下方法:
应用程序状态的数据通常是由为事件编写的处理程序维护:
以下代码片段展示了用于存储应用程序状态信息的基本语法:
ASP.NET Ajax 控制
Ajax 控制AJAX 代表 Asynchronous JavaScript and XML。这是一项跨平台的能加速响应时间的技术。AJAX 服务器控件将脚本添加到页面,它由浏览器执行并处理。 然而像其他 ASP.NET 服务器控件一样,这些 AJAX 服务器控件也能拥有与它们相联系的方法和事件句柄,它们都在服务器端处理。 在 Visual Studio IDE 里的 control 工具箱含有一组叫作 'AJAX' 的控制组件。 ScriptManager 控件ScriptManager 控件是最重要的控件并且必须出现在页面上以让其他控件工作。 它有基本语法:
如果你创建一个 'Ajax Enabled site' 或者从 'Add Item' 对话框添加一个 'AJAX Web Form',网页将自动形成,并包含 script manager 控件。ScriptManager 控件为所有的服务器端的控件照顾客户机端的脚本。 UpdatePanel 控件UpdatePanel 控件是一个容器控件并且源自 Control 类。它作为它里面的子控件的容器而运作并且不拥有它自己的接口。当它其中的一个控件触发提交回来,UpdatePanel 干预异步启动并更新部分页面。 例如,如果一个 button 控件在 update panel 内,并且它被点击了,只有 update panel 内的控件将被影响,页面其他部分的控件将不会被影响。这被叫做部分提交返回或者异步提交返回。 例子在你的应用程序中添加一个 AJAX 网页表单。它包含默认的 script manager 控件。插入一个 update panel。将一个 button 控件和一个 label 标签放置在 update panel 控件内。将另一个 button 和 label 集放置在 panel 外。 设计视图如下所示: 资源文件如下所示:
button 控件对时间处理程序都拥有相同的代码:
观察当页面被执行时,如果总的提交返回按钮被点击了,它将更新标签中都更新时间,但是如果部分提交返回按钮被点击,它仅仅更新在 update panel 内的标签。 UpdatePanel Control 的属性
UpdatePanel Control 的方法以下表格展示了 update panel 控件的方法:
update panel 的行为依赖于 UpdateMode 属性和 ChildrenAsTriggers 属性的值。
UpdateProgress 控件当一个或者更多的 update panel 控件被更新时,UpdateProgress 控件提供了浏览器的一种反馈。例如,当一个用户登录或者当执行一些面向数据库的工作时等待服务器响应。 它提供了如 "Loading page..." 的视觉确认,表示工作在处理中。 UpdateProgress 控件的语法是:
以上的片段展示了一个简单的带有 ProgressTemplate 标签的信息。但是,它可以是一张图片或者其他相关的控件。UpdateProgress 控件显示每一个异步的返回,除非它使用 AssociatedUpdatePanelID 属性,被指定为单独的 update panel。 UpdateProgress 控件的属性以下的表格展示了 update progress 控件的属性。
UpdateProgress 控件的方法以下的表格展示了 update progress 控件的方法:
Timer 控件timer 控件被用来自动初始化提交返回。这可以用两种方式完成: (1)设置 UpdatePanel 控件的 Triggers 属性。
(2)直接在 UpdatePanel 内部放置一个 timer 控件来作为一个子控件的触发器。一个单独的 timer 能作为许多 UpdatePanel 的触发器。
ASP.NET 验证器
验证器ASP.NET 的有效性控制是验证用户输入的数据从而确保那些无用的、未经授权的、矛盾的数据不能被存储。 ASP.NET 提供了如下几个方面的验证控制:
BaseValidator 类有效性验证的类从 BaseValidator 类中继承得到,因此它们继承了它的属性和方法。因此学习这个作为所有有效性控制的基础的基本类的属性和方法对于后续学习将有很大帮助:
RequiredFieldValidator 控制RequiredFieldValidator 控制确保必填字段不为空。它主要和文本框绑定使得用户向文本框输入。 该控制的语法如下:
RangeValidator 控件RangeValidator 控件负责核实输入的值是否在预设的范围之内。 它有三种特定属性:
这个控件的语法如下:
CompareValidator 控件CompareValidator 控件根据输入到另一个输入控件中的值、常量数值或正确的数据类型来验证值。 它有以下的特定属性:
这种控件的基本语法如下:
RegularExpressionValidator 控件RegularExpressionValidator 控件允许通过和正则表达式匹配来确定输入的有效性。正则表达式在 ValidationExpression 的属性里设置。 下表总结了正则表达式通常所用到的语法结构:
除了简单的字符匹配,一类字符可以被设置成匹配的,这类字符叫做通配符。
量词可以表明字符出现的特定字数。
该控件的基本语法如下:
CustomValidator 控件CustomValidator 控件允许编写客户端和服务器端特定的验证例程来验证值。 客户端验证通过 ClientValidationFunction 来适当的完成。客户端验证例程应该用浏览器能够识别的脚本语言来编写,例如 JavaScript 或者 VBScript。 服务器端的验证例程应该由控件的 ServerValidate 事件处理器来生成。服务器端的验证例程应该用任意的 .Net 语言来编写,例如:C# 或 VB.Net。 这种控件的基本语法如下:
ValidationSummary 控件ValidationSummary 控件并不会进行任何验证但是会在页面显示一个所有的错误的总结。这个总结可以显示出所有失败的验证控件的错误信息属性的值。 下面两个相互包含的属性列表列出来错误信息:
这个控件的基本语法如下:
验证组复杂的页面会在不同的层面有不同的信息组。在这种情况下,不同的组就要有不同的验证这种情况可以用验证组来解决。 创建一个验证组,你必须通过设置输入控件和验证控件的 ValidationGroup 属性从而把它们放到相同的逻辑组中。 例子下面这个例子描述了一个将由全校学生填的表格,这个表格分为四部分是用来竞选校长的。在这里,我们将用验证控件来验证用户所输入的。 这是在设计视图下的形式: 这部分内容的代码如下:
提交按钮的代码如下:
github地址: https://github.com/ixixii/ASP.NET_02_WebForms
未完待续,下一章节,つづく 你可能感兴趣的:(ASP.NET,ASP.NET,编程指南) |