ASP.Net教程

ASP.NET 服务器控件

控件是图形用户界面的小型构建块,其中包括文本框、按钮、复选框、列表框、标签和许多其他工具。使用这些工具,用户可以输入数据、进行选择并表明他们的偏好。
控件还用于结构化作业,例如验证、数据访问、安全、创建母版页和数据操作。
ASP.NET 使用五种类型的 Web 控件,它们是:
HTML 控件 HTML 服务器控件 ASP.NET 服务器控件 ASP.NET Ajax 服务器控件 用户控件和自定义控件
ASP.NET 服务器控件是 ASP.NET 中使用的主要控件。这些控件可以分为以下几类:
验证控件-这些用于验证用户输入,它们通过运行客户端脚本来工作。 数据源控件-这些控件提供到不同数据源的数据绑定。 数据视图控件-这些是各种列表和表格,可以绑定到数据源中的数据进行显示。 个性化控件-这些控件用于根据用户偏好和用户信息对页面进行个性化。 登录和安全控件-这些控件提供用户身份验证。 母版页-这些控件在整个应用程序中提供一致的布局和界面。 导航控件-这些控件有助于导航。例如,菜单、树视图等。 丰富的控件-这些控件实现了特殊功能。例如,AdRotator、FileUpload 和 Calendar 控件。
使用服务器控件的语法是:
<asp:controlType  ID ="ControlID" runat="server" Property1=value1  [Property2=value2] />
此外,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 获取或设置在控件被禁用时应用于呈现的 HTML 元素的 CSS 类。
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 将需要渲染的 HTML 属性和样式添加到指定的 HtmlTextWriterTag。
AddedControl 在将子控件添加到控件对象的 Controls 集合后调用。
AddParsedSubObject 通知服务器控件解析了 XML 或 HTML 元素,并将该元素添加到服务器控件的控件集合中。
ApplyStyleSheetSkin 将页面样式表中定义的样式属性应用于控件。
ClearCachedClientID 基础设施。将缓存的 ClientID 值设置为 null。
ClearChildControlState 删除服务器控件的子控件的控件状态信息。
ClearChildState 删除所有服务器控件的子控件的视图状态和控件状态信息。
ClearChildViewState 删除所有服务器控件的子控件的视图状态信息。
CreateChildControls 用于创建子控件。
CreateControlCollection 创建一个新的 ControlCollection 对象来保存子控件。
CreateControlStyle 创建用于实现所有样式相关属性的样式对象。
CreateControlStyle 将数据源绑定到服务器控件及其所有子控件。
DataBind(Boolean) 将数据源绑定到服务器控件及其所有子控件,并提供引发 DataBinding 事件的选项。
DataBindChildren 将数据源绑定到服务器控件的子控件。
Dispose 使服务器控件能够在从内存中释放之前执行最终清理。
EnsureChildControls 确定服务器控件是否包含子控件。如果没有,则创建子控件。
EnsureID 为没有标识符的控件创建标识符。
Equals(Object) 确定指定对象是否等于当前对象。
Finalize 允许对象在垃圾收集回收对象之前尝试释放资源并执行其他清理操作。
FindControl(String) 在当前命名容器中搜索具有指定 id 参数的服务器控件。
FindControl(String, Int32) 在当前命名容器中搜索具有指定 id 和整数的服务器控件。
Focus 将输入焦点设置为控件。
GetDesignModeState 获取控件的设计时数据。
GetType 获取当前实例的类型。
GetUniqueIDRelativeTo 返回指定控件的 UniqueID 属性的前缀部分。
HasControls 确定服务器控件是否包含任何子控件。
HasEvents 指示是否为控件或任何子控件注册了事件。
IsLiteralContent 确定服务器控件是否仅包含文字内容。
LoadControlState 恢复控制状态信息。
LoadViewState 恢复视图状态信息。
MapPathSecure 检索虚拟路径(绝对或相对)映射到的物理路径。
MemberwiseClone 创建当前对象的浅拷贝。
MergeStyle 将指定样式的任何非空白元素复制到 Web 控件,但不会覆盖控件的任何现有样式元素。
OnBubbleEvent 确定服务器控件的事件是否向上传递到页面的 UI 服务器控件层次结构。
OnDataBinding 引发数据绑定事件。
OnInit 引发 Init 事件。
OnLoad 引发 Load 事件。
OnPreRender 引发 PreRender 事件。
OnUnload 引发 Unload 事件。
OpenFile 获取用于读取文件的流。
RemovedControl 从控件对象的控件集合中删除子控件后调用。
Render 将控件呈现给指定的 HTML 编写器。
RenderBeginTag 将控件的 HTML 开始标记呈现给指定的编写器。
RenderChildren 将服务器控件的子控件的内容输出到提供的 HtmlTextWriter 对象,该对象写入要在客户端呈现的内容。
RenderContents 将控件的内容呈现给指定的编写器。
RenderControl(HtmlTextWriter) 将服务器控件内容输出到提供的 HtmlTextWriter 对象,并在启用跟踪时存储有关控件的跟踪信息。
RenderEndTag 将控件的 HTML 结束标记呈现到指定的编写器中。
ResolveAdapter 获取负责呈现指定控件的控件适配器。
SaveControlState 保存自页面回发到服务器以来发生的任何服务器控件状态更改。
SaveViewState 保存在调用 TrackViewState 方法后修改的任何状态。
SetDesignModeState 为控件设置设计时数据。
ToString 返回代表当前对象的字符串。
TrackViewState 使控件跟踪对其视图状态的更改,以便将它们存储在对象的视图状态属性中。

示例

让我们看看一个特定的服务器控件-树视图控件。树视图控件位于导航控件之下。其他导航控件有:Menu 控件和 SiteMapPath 控件。
在页面上添加树视图控件。从任务中选择编辑节点...。使用树视图节点编辑器编辑每个节点,如下所示:
ASP.NET 编辑节点
创建节点后,它在设计视图中如下所示:
ASP.NET Edit Nodes2
AutoFormat... 任务允许您设置树视图的格式,如下所示:
ASP.NET 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 控制节点
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4