ASP.NET Web 伺服器控制項樣板

更新:2007 年 11 月

多數 Web 伺服器控制項都有預設的外觀和配置,您可以藉由設定屬性 (Property) 或使用樣式來加以操作。某些 Web 伺服器控制項也允許您使用樣板 (Template) 來自訂外觀。

樣板是一組 HTML 項目和控制項,可以組成控制項特定部分的配置。例如,在 DataList Web 伺服器控制項中,您可以使用 HTML 項目和控制項的組合,建立清單中每一列的配置。同樣地,GridView Web 伺服器控制項對於方格內資料列也有預設外觀。不過,您可以為個別資料行定義不同的樣板,以自訂方格的外觀。

注意事項:

樣板與樣式不同。樣板定義控制項區段的內容,例如 DataList 控制項中資料列的內容。樣式指定項目的外觀,例如色彩、字型等。樣式可套用至整個控制項 (例如,設定 GridView 控制項的字型),也可以套用至樣板項目。

樣板包括 HTML 和內嵌的伺服器控制項。當控制項在 ASP.NET Web 網頁中執行時,控制項基礎結構會呈現樣板的內容,以代替控制項的預設 HTML。

哪些控制項支援樣板?

並不是所有 Web 伺服器控制項都支援樣板。大體上說來,樣板都是由複雜控制項所支援。這包括 GridViewDataListRepeaterFormViewDetailsViewLogin 和其他控制項。

每一控制項都支援一組略有不同的樣板,該樣板指定控制項不同部分的配置,例如頁首、頁尾、項目和選取項目。您可以指定一個樣板用於任一或所有部分,完全取決於您要自訂的部分。在 GridView 控制項中,您可以指定資料行 (而不是資料列) 的樣板。

下表摘要支援樣板的 Web 伺服器控制項。

控制項

範本

ChangePassword

  • ChangePasswordTemplate

  • SuccessTemplate

CompleteWizardStep

  • ContentTemplate

  • CustomNavigationTemplate

CreateUserWizard

  • HeaderTemplate

  • SideBarTemplate

  • StartNavigationTemplate

  • StepNavigation

  • FinishNavigation

CreateUserWizardStep

  • ContentTemplate

  • CustomNavigationTemplate

DataList

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

  • SelectedItemTemplate

  • EditItemTemplate

DetailsView

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

FormView

  • ItemTemplate

  • EditItemTemplate

  • InsertItemTemplate

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

GridView

  • PagerTemplate

  • EmptyDataTemplate

ListView

  • LayoutTemplate

  • ItemTemplate

  • ItemSeparatorTemplate

  • GroupTemplate

  • GroupSeparatorTemplate

  • EmptyItemTemplate

  • EmptyDataTemplate

  • SelectedItemTemplate

  • AlternatingItemTemplate

  • EditItemTemplate

  • InsertItemTemplate

Login

  • LayoutTemplate

LoginView

  • AnonymousTemplate

  • LoggedInTemplate

Menu

  • DynamicTemplate

  • StaticTemplate

PasswordRecovery

  • QuestionTemplate

  • SuccessTemplate

  • UserNameTemplate

Repeater

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

SiteMapPath

  • CurrentNodeTemplate

  • RootNodeTemplate

  • NodeTemplate

  • PathSeparatorTemplate

TemplatePagerField

  • PageTemplate

UpdatePanel

  • ContentTemplate

UpdateProgress

  • ProgressTemplate

Wizard

  • FinishNavigationTemplate

  • HeaderTemplate

  • StartNavigationTemplate

  • StepNavigationTemplate

  • SideBarTemplate

建立樣板

您可以直接在 .aspx 檔中建立樣板。樣板會被建立為 XML 宣告。下列程式碼將示範如何使用 DataList 控制項中的樣板,顯示員工姓名、電話號碼和電子郵件地址的清單。同時使用資料繫結控制項在 ItemTemplate 中指定了員工資訊的配置。

注意事項:

如果您使用的是視覺化設計工具 (例如 Visual Studio 2005),通常可以使用視覺化工具來建立和編輯樣板。如需詳細資訊,請參閱 HOW TO:使用設計工具建立 Web 伺服器控制項樣板

<asp:datalist id="DataList1" >
  <HeaderTemplate>
  Employee List
  </HeaderTemplate>
  <ItemTemplate>
    <asp:label id="Label1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'></asp:label>
    <asp:label id="Label2"  
        Text='<%# DataBinder.Eval(Container, "DataItem.PhoneNumber")%>'></asp:label>
    <asp:Hyperlink id="Hyperlink1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'
        NavigateURL='<%# DataBinder.Eval(Container, "DataItem.Link") %>'>
    </asp:Hyperlink>
  </ItemTemplate>
</asp:datalist>
<asp:datalist id="DataList1" >
  <HeaderTemplate>
  Employee List
  </HeaderTemplate>
  <ItemTemplate>
    <asp:label id="Label1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'></asp:label>
    <asp:label id="Label2"  
        Text='<%# DataBinder.Eval(Container, "DataItem.PhoneNumber")%>'></asp:label>
    <asp:Hyperlink id="Hyperlink1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'
        NavigateURL='<%# DataBinder.Eval(Container, "DataItem.Link") %>'>
    </asp:Hyperlink>
  </ItemTemplate>
</asp:datalist>

使用樣板

樣板化的控制項只在需要時才會建立其樣板內容的執行個體 (Instance),也就是說,當網頁載入事件發生時,可能不會建立樣板內控制項的執行個體。這個行為會影響樣板內的控制項可以使用的程度,因此您無法假設當載入網頁時就已經建立了樣板內的控制項。

巢狀樣板和巢狀主版檔案無法在 Visual Web Developer 或 Visual Studio 2005 的設計檢視中呈現,但可以在 Web 瀏覽器中正確呈現。

請參閱

概念

ASP.NET Web 伺服器控制項和 CSS 樣式

其他資源

使用 ASP.NET 存取資料