ASP.NET Web 伺服器控制項樣板
更新:2007 年 11 月
多數 Web 伺服器控制項都有預設的外觀和配置,您可以藉由設定屬性 (Property) 或使用樣式來加以操作。某些 Web 伺服器控制項也允許您使用樣板 (Template) 來自訂外觀。
樣板是一組 HTML 項目和控制項,可以組成控制項特定部分的配置。例如,在 DataList Web 伺服器控制項中,您可以使用 HTML 項目和控制項的組合,建立清單中每一列的配置。同樣地,GridView Web 伺服器控制項對於方格內資料列也有預設外觀。不過,您可以為個別資料行定義不同的樣板,以自訂方格的外觀。
![]() |
---|
樣板與樣式不同。樣板定義控制項區段的內容,例如 DataList 控制項中資料列的內容。樣式指定項目的外觀,例如色彩、字型等。樣式可套用至整個控制項 (例如,設定 GridView 控制項的字型),也可以套用至樣板項目。 |
樣板包括 HTML 和內嵌的伺服器控制項。當控制項在 ASP.NET Web 網頁中執行時,控制項基礎結構會呈現樣板的內容,以代替控制項的預設 HTML。
哪些控制項支援樣板?
並不是所有 Web 伺服器控制項都支援樣板。大體上說來,樣板都是由複雜控制項所支援。這包括 GridView、DataList、Repeater、FormView、DetailsView、Login 和其他控制項。
每一控制項都支援一組略有不同的樣板,該樣板指定控制項不同部分的配置,例如頁首、頁尾、項目和選取項目。您可以指定一個樣板用於任一或所有部分,完全取決於您要自訂的部分。在 GridView 控制項中,您可以指定資料行 (而不是資料列) 的樣板。
下表摘要支援樣板的 Web 伺服器控制項。
控制項 |
範本 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
建立樣板
您可以直接在 .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 瀏覽器中正確呈現。