LabelとTextBoxを含む単純化されたコンポジットコントロールにテンプレートを追加しようとしています。私は、テキストボックスとラベルのプロパティを持つtemplateContainerクラスを持っているASP.NETテンプレート複合コントロールを使用するにはどうすればよいですか?
<test:FormItem ID="fi" runat="server" Title="MyTitle" Text="My Text!">
<TestTemplate>
<i>
<%# Container.Title) %></i>
<br />
<%# Container.Text %>
</TestTemplate>
</test:FormItem>
:私はこのような何かを見て、私のマークをアップします。私はCreateChildControlsの(から呼び出されているCreateControlHierarchy()メソッドを持ってメインのFormItemクラスで
public class TemplateContainer : WebControl, INamingContainer
{
public TextBox Text { get { return m_item.Text; } }
public Label Title { get { return m_item.Title; } }
private FormItem m_item;
public TemplateContainer(FormItem item)
{
m_item = item;
}
}
):私が欲しいもの
protected virtual void CreateControlHierarchy()
{
m_itemTemplateContainer = new TemplateContainer(this);
TestTemplate.InstantiateIn(m_itemTemplateContainer);
Controls.Add(m_itemTemplateContainer);
}
は、実際のコントロールをレンダリングするテンプレートです。代わりに、コントロールのToString()を呼び出して、System.Web.UI.WebControls.LabelとSystem.Web.UI.WebControls.TextBoxを表示しています。テンプレートをToString()を呼び出すのではなく、そのコレクションにコントロールを追加する方法はありますか?
注:テキストボックスとラベルを、同じことを行うコンテナのコントロールコレクションに追加しようとしました。
コンポジットコントロール(コントロールのコントロール)を作成し、ユーザーがコントロールの周りにマークアップを追加できるようにします。注:私はUserControlを作成したくありません。私はコンポジットコントロールのコントロール用のカスタムロジックを持っており、アプリケーション間で使用したいと思っています。 – rmw
ユーザーは、実際のコントロール自体を移動できなければならないのでしょうか、それともその前後にマークアップを置くことができなければなりませんか? – codemonkeh