Share via


Web フォーム テンプレート エディタの実装

テンプレート エディタは、テンプレート ASP.NET サーバー コントロールのためのテンプレート作成および編集をサポートする、特定の用途向けのデザイナです。テンプレート エディタを持つコントロールが提供するデザイン領域では、ページの開発者は、ツールボックスからコントロールをドラッグしてインライン テンプレートを作成できます。.NET Framework SDK の DataList サーバー コントロールおよび DataGrid サーバー コントロールは、テンプレート編集をサポートするコントロールの例です。テンプレート コントロールの作成の詳細については、「テンプレート コントロールの開発」を参照してください。

.NET Framework は ControlDesigner から派生する抽象基本クラス (System.Web.UI .Design.TemplatedControlDesigner) を提供し、テンプレート編集に必要なプロパティおよびメソッドを公開します。テンプレート エディタは TemplatedControlDesigner から派生する必要があります。テンプレート エディタを実装するための主な手順を次に示します。

テンプレート エディタを実装するには、次のようにします。

  1. TemplatedControlDesigner から派生するクラスを定義します。

  2. ControlDesigner から継承された AllowResize プロパティをオーバーライドして、コントロールのサイズを変更できるようにします。通常、コントロールはサイズ変更ができないようになっていますが、テンプレート モードではコントロールのサイズを変更できるようにすることをお勧めします。

  3. GetCachedTemplateEditingVerbs メソッドをオーバーライドします。コントロールは、そのコントロールに適用できるテンプレート編集動詞のリストを返すためにこのメソッドをオーバーライドします。テンプレート編集動詞については、手順 4 を参照してください。

  4. CreateTemplateEditingFrame メソッドをオーバーライドします。このメソッドは、TemplateEditingVerb のインスタンスを引数とします。TemplateEditingVerb は、テンプレート エディタがデザイン時にコマンドをコントロールに追加できるようにするためのデザイナ動詞 (DesignerVerb の派生クラス) です。デザイナ動詞の背景情報については、「デザイナ動詞」を参照してください。

  5. テンプレートのコンテンツを取得する GetTemplateContent メソッドをオーバーライドします。

  6. テンプレートのコンテンツを設定する SetTemplateContent メソッドをオーバーライドします。

  7. 他のすべてのデザイナの場合と同様に、ControlDesigner クラスから継承される GetDesignTimeHtmlGetEmptyDesignTimeHtmlGetErrorDesignTimeHtml の各メソッドをオーバーライドします。テンプレート コントロールがデータ連結コントロールである場合、オーバーライドされた GetDesignTimeHtml メソッドは、「Web フォーム データ連結コントロール デザイナの実装」で説明するように、コントロールのデータ ソースをデザイン時データ ソースに設定する必要があります。

    また、テンプレート コントロールがデータ連結コントロールである場合は、「Web フォーム データ連結コントロール デザイナの実装」で説明されている手順を実装し、TemplatedControlDesigner の次のメソッド (手順 8 および 9 で説明します) をオーバーライドする必要があります。

  8. テンプレート コンテナのデータ ソースを提供する GetTemplateContainerDataSource メソッドをオーバーライドします。このメソッドは、テンプレート内に置かれたコントロールのデータ連結を編集するときにデータ連結ダイアログ ボックスから呼び出されます。

  9. テンプレート コンテナの DataItem プロパティの名前にアクセスする GetTemplateContainerDataItemProperty メソッドをオーバーライドします。

テンプレート エディタのサンプルについては、「Web フォーム テンプレート データ連結コントロール デザイナのサンプル」を参照してください。

参照

Web フォーム テンプレート データ連結コントロール デザイナのサンプル | Web フォーム データ連結コントロール デザイナの実装 | カスタム デザイナ | Web フォームのデザイン時サポート