public ref class UserControl : System::Web::UI::TemplateControl, System::Web::UI::IAttributeAccessor, System::Web::UI::IUserControlDesignerAccessor
public class UserControl : System.Web.UI.TemplateControl, System.Web.UI.IAttributeAccessor, System.Web.UI.IUserControlDesignerAccessor
type UserControl = class
inherit TemplateControl
interface IAttributeAccessor
interface IUserControlDesignerAccessor
type UserControl = class
inherit TemplateControl
interface IAttributeAccessor
interface INamingContainer
interface IUserControlDesignerAccessor
Public Class UserControl
Inherits TemplateControl
Implements IAttributeAccessor, IUserControlDesignerAccessor
UserControl
以下示例
SimpleControl
中定义的类 继承
UserControl
类,并可用作 ASP.NET 代码隐藏类。 它使用 、 和 Web 服务器控件,并定义一个
myButton_Click
方法,该方法将
TextBox.Text
属性值以及两个字符串分配给 属性
Label.Text
。
Button
Label
TextBox
此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。 有关详细信息,请参阅
脚本侵入概述
。
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public class SimpleControl:UserControl
public TextBox name;
public Label output;
public Button myButton;
public void myButton_Click(object sender, EventArgs e)
output.Text = "Hello, " + name.Text + ".";
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class SimpleControl
Inherits UserControl
Public name As TextBox
Public output As Label
Public myButton As Button
Public Sub myButton_Click(sender As Object, e As EventArgs)
output.Text = "Hello, " + name.Text + "."
End Sub
End Class
以下示例是 .ascx 文件中包含的标记。 可以将上一 SimpleControl
示例中定义的 类用作此 .ascx 文件中标记的代码隐藏类。
<%@ control inherits = "SimpleControl" src = "SimpleControl.cs" %>
<table style="background-color:yellow;font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing="15">
<td><b>Enter your name here: </b></td>
<td><ASP:TextBox id="name" runat="server"/></td>
<td><b><ASP:Label id="output" runat="server"/></b></td>
<td></td>
<td><asp:button id="myButton" text="Submit" OnClick="myButton_Click" runat="server" /></td>
</table>
<%@ control inherits = "SimpleControl" src = "SimpleControl.vb" %>
<table style="background-color: yellow; font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing="15">
<td><b>Enter your name here: </b></td>
<td><ASP:TextBox id="name" runat="server"/></td>
<td><b><ASP:Label id="output" runat="server"/></b></td>
<td></td>
<td><asp:button text="Submit" OnClick="myButton_Click" runat="server" /></td>
</table>
类 UserControl 与扩展名为 .ascx 的文件相关联。 这些文件在运行时编译为 UserControl 对象,并缓存在服务器内存中。
可以通过在另一个 .ascx 文件中声明一个 .ascx 文件来嵌套用户控件,并在Web Forms页中声明后者。
用户控件包含在 ASP.NET Web Forms页中,为 Web 开发人员提供了一种捕获常用 Web UI 的简单方法。 它们的实例化和缓存方式类似于 Page 对象。 但是,与页面不同,用户控件不能单独调用。 只能从包含它们的页面或其他用户控件调用它们。
如果要使用代码隐藏技术创建用户控件,请从此类派生。 如果要使用此技术开发Web Forms页,则建议这样做。
有关以声明方式创建用户控件的信息,请参阅 ASP.NET 用户控件。
向 HtmlTextWriter 控件写入资源字符串。 WriteUTF8ResourceString(HtmlTextWriter, Int32, Int32, Boolean) 方法是由生成的类使用的,并且不应从代码中使用。
(继承自 TemplateControl)