Share via


伺服器控制項內嵌樣板語法

指定將會在支援樣板的 ASP.NET 伺服器控制項的內部包含何種內容,以及將會如何排列內容和套用其樣式。

<templatename>
   Server control, data-binding syntax, other valid markup
</templatename>

標記

  • templatename
    ASP.NET 伺服器控制項樣板的名稱。

備註

樣板可以用來套用出現在 ASP.NET 伺服器控制項內部之內容的結構和樣式。 內嵌樣板語法是使用樣板的有用方式,因為此語法能讓您以簡單的宣告式語法設計控制項中內容的安排與樣式,而不需要以程式設計的方式進行。

許多 ASP.NET Web 伺服器控制項都支援樣板 (例如,RepeaterDataListGridViewFormViewMultiViewLoginViewMenu 控制項都支援樣板,包括 WebPartZoneCatalogZone 的 Web 組件區域控制項也都有同樣的支援)。 請注意,只有特別為控制項定義的樣板可實際上用於宣告該控制項。

樣板項目必須宣告為支援這些樣板之伺服器控制項的子項目。 伺服器控制項可以包含多個樣板項目,每個樣板都用以指定控制項中不同內容的特性。 例如,Repeater 控制項支援以樣板指定頁首區段、主體區段、項目區段和頁尾區段的配置和內容外觀,以及以特殊樣板處理替代項目和項目間分隔符號的樣式。 如需詳細資料,請參閱本主題中的程式碼範例。

若要指定內容出現在樣板內的方式,您可以在樣板標記內宣告額外的項目。 額外的標記可以由 HTML 標記、ASP.NET 控制項,以及內嵌伺服器端運算式或程式碼區塊所組成。 如需如何使用內嵌樣板的詳細資訊,請參閱 ASP.NET Web Server Controls Templates

您在開發自訂伺服器控制項時可以定義自己的樣板。 如需開發控制項以定義和使用內嵌樣式樣板的詳細資訊,請參閱 How to: Create Templated ASP.NET User Controls

範例

下列程式碼範例示範如何在 Repeater Web 伺服器控制項中,宣告 HeaderTemplate、AlternatingItemTemplate、ItemTemplate 和 FooterTemplate 樣板。 其中每個樣板都與 Repeater 類別的一個屬性關聯。

<%@ Page Language="C#" %>
<html>
 <head>
    <script language="C#" runat="server">
       void Page_Load(Object Sender, EventArgs e) {
 
          if (!IsPostBack) {
             ArrayList values = new ArrayList();
 
             values.Add("Apple");
             values.Add("Orange");
             values.Add("Pear");
             values.Add("Banana");
             values.Add("Grape");
 
             Repeater1.DataSource = values;
             Repeater1.DataBind();
          }
       }
    </script>
 
 </head>
 <body>
 
    <h3><font face="Verdana">Repeater Example</font></h3>
 
    <form runat=server>
 
       <b>Repeater1:</b>
       <p>
         
       <asp:Repeater id=Repeater1 runat="server">
             
             
          <HeaderTemplate>
             <table border=1>
          </HeaderTemplate>
 
          <AlternatingItemTemplate>
             <tr>
                <td><b> <%# Container.DataItem %> </b> </td>
             </tr>
          </AlternatingItemTemplate>
 
          <ItemTemplate>
             <tr>
                <td> <%# Container.DataItem %> </td>
             </tr>
          </ItemTemplate>
 
          <FooterTemplate>
             </table>

          </FooterTemplate>
             
       </asp:Repeater>
       <p>
         
    </form>
 </body>
 </html>
<%@ Page Language="VB" %> 
<html>
<head>
<script language="VB" runat="server">

        Sub Page_Load(Sender As Object, e As EventArgs)
            
            If Not IsPostBack Then
                Dim values As New ArrayList()
                
                values.Add("Apple")
                values.Add("Orange")
                values.Add("Pear")
                values.Add("Banana")
                values.Add("Grape")
                
                Repeater1.DataSource = values
                Repeater1.DataBind()
            End If
        End Sub
</script>
 
 </head>
 <body>
 
    <h3><font face="Verdana">Repeater Example</font></h3>
 
    <form runat=server>
 
       <b>Repeater1:</b>
       <p>
         
       <asp:Repeater id=Repeater1 runat="server">
             
             
          <HeaderTemplate>
             <table border=1>
          </HeaderTemplate>
 
          <AlternatingItemTemplate>
             <tr>
                <td><b> <%# Container.DataItem %> </b> </td>
             </tr>
          </AlternatingItemTemplate>
 
          <ItemTemplate>
             <tr>
                <td> <%# Container.DataItem %> </td>
             </tr>
          </ItemTemplate>
 
          <FooterTemplate>
             </table>

          </FooterTemplate>
             
       </asp:Repeater>
       <p>
         
    </form>
 </body>
 </html>    

請參閱

工作

How to: Create Templated ASP.NET User Controls

參考

自訂伺服器控制項語法

概念

ASP.NET Web Page Syntax Overview