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

时间:2013-04-14 06:23:32

标签: c# asp.net asp.net-customcontrol

我创建了一个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属性,但自定义控件没有Text属性。

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

1 个答案:

答案 0 :(得分:1)

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

所以在 control.ascx.cs

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

然后这将起作用

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

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