0

我创建了一个 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" />
4

1 回答 1

1

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

所以在control.ascx.cs

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

然后这将工作

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

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

于 2013-04-14T06:27:12.003 回答