委任コントロール (コントロールのテンプレート化)

最終更新日: 2009年10月1日

適用対象: SharePoint Foundation 2010

Microsoft SharePoint Foundation は、特定の機能の候補コントロールを宣言する単純なメカニズムと、単一の機能プロバイダーを選択するためのメカニズムを備えています。フィーチャーを使用することで、選択した機能の候補となるコントロール テンプレートを識別できます。

コントロールは、コントロールにより提供される機能に基づいて識別されます。Feature 要素を使用して、そのような機能に対応するコントロールを登録できます。次の例に示すように、使用するコントロールの種類、連番、コントロール テンプレートまたはアセンブリの URL を指定します。

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
  <Control 
    Id="SmallSearchInputBox" 
    Sequence="100" 
    Url="/templates/mysearchcontrol.ascx"/>
</Elements>

下位の連番を指定するので、前のコントロールが次のコントロールに置き換えられます。

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
  <Control 
    Id="SmallSearchInputBox" 
    Sequence="50" 
    ControlClass="MySearchControl" 
    ControlAssembly="MyAssembly"/>
</Elements>

DelegateControl は SharePoint Foundation ページに埋め込まれており、次の情報に基づいた動作を実行します。

<SharePoint:DelegateControl ControlId="SmallSearchInputBox"/>

実行時には、サーバー ファーム、Web アプリケーション、サイト コレクション、Web サイトの各レベルで宣言された一連のコントロール要素がこの要素に受け入れられます。連番が最も小さいコントロールが DelegateControl によってコントロール ツリーに追加されます。最も小さい連番が重複している場合、コントロールの順序はランダムに決定されます。

DelegateControl の連番を使用して、SharePoint Foundation のポータル検索機能を統合することができます。既定の検索コントロールの連番は 100 ですが、ポータル検索の場合は、たとえば連番が 50 のサイト コントロール レベルでアクティブ化することができます。SharePoint Foundation ではこのようにして、検索コントロールが起動されるすべての場所で既定の検索コントロールをポータル検索コントロールに置き換えます。

たとえば、次に示すのは SmallSearchInputBox 委任コントロールです。

<SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox"/>

このコントロールを使用して、次のようにカスタム コントロールの候補をインスタンス化するとします。

<MySearch:SuperSearchControl/>

親の委任コントロールは、カスタム コントロールのプロパティを設定します。DelegateControl 内で Property 要素を使用し、リフレクションを使って、関連付けられているカスタム コントロールのプロパティを設定します。

注意

AllowMultipleControls プロパティを true に設定すると、一致するすべての候補コントロールが、Sequence 属性で指定された順序に従って、委任コントロールの子としてページに追加されます。

委任コントロールは内部でインスタンス化される実際のコントロールを認識しないため、本質的に指定可能ではありません。委任コントロールで可能なのは、特定のインスタンスに対して、選択されたコントロールのデザインタイム HTML をレンダリングすることまでです。作成者は、コントロールを "ハードコード" するオプションを提供することはできます。つまり、フィーチャー インフラストラクチャによって返された現在のコントロールによって、SharePoint:DelegateControl を置き換えるというオプションです。開発者はこのコントロールをカスタマイズすることができます。

適用範囲 :

  • ファーム : はい

  • Web アプリケーション : はい

  • サイト コレクション : はい

  • Web サイト : はい

関連項目

タスク

[方法] 委任コントロールをカスタマイズする

参照

DelegateControl

概念

委任コントロール