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 に答える