TemplateField.ItemTemplate プロパティ

定義

データ バインド コントロールの項目を表示するときに使用するテンプレートを取得または設定します。

public:
 virtual property System::Web::UI::ITemplate ^ ItemTemplate { System::Web::UI::ITemplate ^ get(); void set(System::Web::UI::ITemplate ^ value); };
[System.ComponentModel.Browsable(false)]
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
[System.Web.UI.TemplateContainer(typeof(System.Web.UI.IDataItemContainer), System.ComponentModel.BindingDirection.TwoWay)]
public virtual System.Web.UI.ITemplate ItemTemplate { get; set; }
[<System.ComponentModel.Browsable(false)>]
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
[<System.Web.UI.TemplateContainer(typeof(System.Web.UI.IDataItemContainer), System.ComponentModel.BindingDirection.TwoWay)>]
member this.ItemTemplate : System.Web.UI.ITemplate with get, set
Public Overridable Property ItemTemplate As ITemplate

プロパティ値

ITemplate

ITemplate の項目を表示するときに使用するテンプレートを格納している TemplateField 実装オブジェクト。 既定値は null です。このプロパティが設定されていないことを示します。

属性

次のコード例は、プロパティを使用 ItemTemplate して、コントロール内のフィールドの項目のカスタム テンプレートを TemplateField 作成する方法を GridView 示しています。 テンプレートは、フィールドの値をコントロールに RadioButtonList 表示します。


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void TitleGridView_RowDataBound (Object sender, GridViewRowEventArgs e)
  {
    
    // Get the RadioButtonList control from the row.
    RadioButtonList radio = (RadioButtonList)e.Row.FindControl("TypeList");
    
    // Select the appropriate option button based on the value
    // of the Type field for the row. In this example, the Type
    // field values are stored in the column in the 
    // GridView control.
    if (radio != null)
    {
      switch (e.Row.Cells[3].Text.Trim())
      {
        case "business":
          radio.SelectedIndex = 0; 
          break;

        case "mod_cook":
          radio.SelectedIndex = 1; 
          break;

        case "popular_comp":
          radio.SelectedIndex = 2; 
          break;

        case "psychology":
          radio.SelectedIndex = 3; 
          break;

        case "trad_cook":
          radio.SelectedIndex = 4; 
          break;

        default:
          radio.SelectedIndex = 5; 
          break;
      }
    }
    
  }
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TemplateField ItemTemplate Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>TemplateField ItemTemplate Example</h3>

      <!-- Populate the Columns collection declaratively. -->
      <!-- Create a custom TemplateField column that uses      -->
      <!-- two Label controls to display an author's first and -->
      <!-- last name in the same column.                       -->
      <asp:gridview id="TitleGridView" 
        datasourceid="TitleSqlDataSource" 
        autogeneratecolumns="false"
        onrowdatabound="TitleGridView_RowDataBound" 
        runat="server">
                
        <columns>
          
          <asp:boundfield datafield="title"
            headertext="Title"/>
          
          <asp:boundfield datafield="price"
            dataformatstring="{0:c}"
            headertext="Price"/>  
                  
          <asp:templatefield headertext="Type">
            <itemtemplate>
              <asp:radiobuttonlist id="TypeList"
                datasourceid="TypeSqlDataSource"
                datatextfield="type"
                enabled="false"  
                runat="server"/>  
            </itemtemplate>
          </asp:templatefield>
          
          <asp:boundfield datafield="type"/>
                
        </columns>
                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects -->
      <!-- to the Pubs sample database.                        -->
      <asp:sqldatasource id="TitleSqlDataSource"  
        selectcommand="SELECT [title], [price], [type] FROM [titles]"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>
      
      <asp:sqldatasource id="TypeSqlDataSource"  
        selectcommand="SELECT Distinct [type] FROM [titles]"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

<%@ Page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub TitleGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    
    ' Get the RadioButtonList control from the row.
    Dim radio As RadioButtonList = CType(e.Row.FindControl("TypeList"), RadioButtonList)
    
    ' Select the appropriate option button based on the value
    ' of the Type field for the row. In this example, the Type
    ' field values are stored in the column in the 
    ' GridView control.
    If Not radio Is Nothing Then

      Select Case e.Row.Cells(3).Text.Trim()

        Case "business"
          radio.SelectedIndex = 0

        Case "mod_cook"
          radio.SelectedIndex = 1

        Case "popular_comp"
          radio.SelectedIndex = 2

        Case "psychology"
          radio.SelectedIndex = 3

        Case "trad_cook"
          radio.SelectedIndex = 4

        Case Else
          radio.SelectedIndex = 5
      
      End Select
      
    End If
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TemplateField ItemTemplate Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>TemplateField ItemTemplate Example</h3>

      <!-- Populate the Columns collection declaratively. -->
      <!-- Create a custom TemplateField column that uses      -->
      <!-- two Label controls to display an author's first and -->
      <!-- last name in the same column.                       -->
      <asp:gridview id="TitleGridView" 
        datasourceid="TitleSqlDataSource" 
        autogeneratecolumns="false"
        onrowdatabound="TitleGridView_RowDataBound" 
        runat="server">
                
        <columns>
          
          <asp:boundfield datafield="title"
            headertext="Title"/>
          
          <asp:boundfield datafield="price"
            dataformatstring="{0:c}"
            headertext="Price"/>  
                  
          <asp:templatefield headertext="Type">
            <itemtemplate>
              <asp:radiobuttonlist id="TypeList"
                datasourceid="TypeSqlDataSource"
                datatextfield="type"
                enabled="false"  
                runat="server"/>  
            </itemtemplate>
          </asp:templatefield>
          
          <asp:boundfield datafield="type"/>
                
        </columns>
                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects -->
      <!-- to the Pubs sample database.                        -->
      <asp:sqldatasource id="TitleSqlDataSource"  
        selectcommand="SELECT [title], [price], [type] FROM [titles]"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>
      
      <asp:sqldatasource id="TypeSqlDataSource"  
        selectcommand="SELECT Distinct [type] FROM [titles]"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

注釈

このプロパティを ItemTemplate 使用して、オブジェクト内の項目に表示されるカスタム コンテンツを TemplateField 指定します。 アイテムのレンダリング方法を指定するテンプレートを作成して、コンテンツを定義します。

注意

必要に応じて、プロパティとItemTemplateプロパティをAlternatingItemTemplate組み合わせて定義して、データ バインド コントロール内の他のすべての項目に対して異なる外観を作成できます。

テンプレートを指定するには、最初に要素の開始タグと終了 <ItemTemplate> タグの間に開始タグと終了タグを <TemplateField> 配置します。 次に、開始タグと終了タグの間にカスタム コンテンツを追加します <ItemTemplate> 。 コンテンツは、プレーン テキストと同じくらい単純にすることも、より複雑にすることもできます (テンプレートに他のコントロールを埋め込むなど)。

テンプレートで定義されているコントロールにプログラムでアクセスするには、まず、データ バインド コントロール内のどのオブジェクトにコントロールが含まれているかを TableCell 判断します。 次に、オブジェクトの Controls コレクションを TableCell 使用してコントロールにアクセスします。 コントロールにプロパティが FindControl 指定されている場合は、オブジェクトの TableCell メソッドを使用してコントロールを ID 検索することもできます。

適用対象

こちらもご覧ください