次の方法で共有


方法 : DataList Web サーバー コントロールのテンプレートを動的に作成する

更新 : 2007 年 11 月

テンプレートは、デザイン時に割り当てる必要はありません。状況によってはテンプレートをデザイン時にレイアウトできることもありますが、実行中に非常に広範な変更を行うことがわかっている場合は、新しいテンプレートを実行時に読み込むことでプログラミングを簡素化できます。また、複数の利用できるテンプレートを用意して、実行時にテンプレートを変更することもできます。

テンプレート定義ファイルを作成するには

  1. 新しいテキスト ファイルを作成して .ascx 拡張子を付けます。

  2. 宣言テンプレートで使用するのと同じマークアップを使用して、テンプレート定義ステートメントをテンプレート ファイルに追加し、保存します。

    データ バインドされている Label コントロールを含むテンプレートのマークアップを持つ .ascx ファイルの内容の例を次に示します。データ バインディングは、DataList コントロールにバインドされているデータ ソースに対して実行時に解決されます。

    Name: <asp:Label ID="CategoryNameLabel" runat="server" 
              Text='<%# Eval("CategoryName") %>'>
          </asp:Label>
    <br />
    Description: <asp:Label ID="DescriptionLabel" runat="server" 
              Text='<%# Eval("Description") %>'>
          </asp:Label>
    

テンプレートを動的に作成するには

  • Web フォーム ページに、LoadTemplate メソッドを使用してテンプレートを読み込むコードを追加します。このメソッドはファイルからテンプレート定義を読み取り、ITemplate オブジェクトを作成します。作成したオブジェクトは DataList コントロールの任意のテンプレートに割り当てることができます。

    次の例では、Page_Init イベント ハンドラを使用して、上記の手順で作成した NewTemplate.ascx テンプレートを読み込みます。

    Protected Sub Page_Init(ByVal Sender As System.Object, _
            ByVal e As System.EventArgs)
        DataList1.AlternatingItemTemplate = _
            Page.LoadTemplate("NewTemplate.ascx")
    End Sub
    
    protected void Page_Init(object sender, EventArgs e)
    {
        DataList1.AlternatingItemTemplate = 
            Page.LoadTemplate("NewTemplate.ascx");
    }
    

参照

参照

DataList Web サーバー コントロールの概要