从后台代码的asp.net自定义控件的访问属性

本文关键字:自定义控件 访问 属性 net asp 后台 代码 | 更新日期: 2023-09-27 18:09:17

创建一个asp.net自定义控件

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="control.ascx.cs" Inherits="test.control.control" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

我把它放在aspx页面,我想使用自定义控件的Text属性,但自定义控件没有文本属性。

<uc1:control runat="server" id="control" />

从后台代码的asp.net自定义控件的访问属性

您需要在后面的代码中添加一个属性,该属性表示文本框的text属性。

所以在control. asx .cs

public string Text
{
    get { return TextBox1.Text; }
    set { TextBox1.Text = value; }
}

那么这将工作

<uc1:control runat="server" id="control" Text="My Control" />

只是澄清-自定义控件不会自然地继承子控件的属性,例如,如果控件有两个文本框控件,您会期望发生什么?因此,对于您希望自定义控件公开的每个属性,您需要向后面的代码添加一个属性。您甚至可以添加与子控件的属性无关的属性,并将值保留在隐藏字段或控件状态甚至视图状态中。