建立模板化的ASP.NET 使用者控制元件
使用者控制元件的使用者介面由頁面開發人員在設計時提供。開發人員建立由使用者控制元件定義的型別模板,然後可以向模板新增控制元件和標記。
建立模板使用者控制元件在 .ascx 檔案中,新增要在其中顯示模板的 ASP.NET PlaceHolder 控制元件。
在使用者控制元件的程式碼中,實現 ITemplate 型別的屬性。
將實現 INamingContainer 介面的伺服器控制元件類定義為要在其中建立模板例項的容器。此容器叫做模板的命名容器。
注意
此控制元件實質上成了使用者控制元件的巢狀類,但這不是必需的。
將 TemplateContainerAttribute 應用於實現 ITemplate 的屬性 (property),並將模板命名容器的型別作為引數傳遞給屬性 (attribute) 的建構函式。
在控制元件的 Init 方法中,將以下步驟重複一次或多次:
建立命名容器類的一個例項www.qichepeijian.com。
在命名容器中建立該模板的一個例項。
將命名容器例項新增到 PlaceHolder 伺服器控制元件的 Controls 屬性。
注意
從使用使用者控制元件的頁面的角度來看,模板化使用者控制元件的語法與自定義模板化控制元件的語法相同。
示例
下面的示例演示一個模板化使用者控制元件和一個包含該控制元件的頁面。該使用者控制元件建立一個可在宿主頁上宣告為
第一個示例顯示模板化使用者控制元件。第二個示例顯示包含該使用者控制元件的頁面。
C#" ClassName="TemplatedUC" %>
private ITemplate messageTemplate = null;
[ TemplateContainer(typeof(MessageContainer)) ]
public ITemplate MessageTemplate {
get
{
return messageTemplate;
}
set
{
messageTemplate = value;
}
}
void Page_Init() {
if (messageTemplate != null) {
String[] fruits = {"apple", "orange", "banana", "pineapple" };
for (int i=0; i<4; i++)
{
MessageContainer container = new MessageContainer(i, fruits[i]);
messageTemplate.InstantiateIn(container);
PlaceHolder1.Controls.Add(container);
}
}
}
public class MessageContainer: Control, INamingContainer {
private int m_index;
private String m_message;
internal MessageContainer(int index, String message)
{
m_index = index;
m_message = message;
}
public int Index {
get
{
return m_index;
}
}
public String Message
{
get
{
return m_message;
}
}
}
C#" %>
Src="TemplatedUC.ascx" %>
protected void Page_Load()
{
DataBind();
}
Testing Templated User Control
Index:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-672324/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASP.NET:MVC模板化機制ASP.NETMVC
- 建立ASP.NET WEB自定義控制元件(轉)ASP.NETWeb控制元件
- ASP.NET中,動態載入使用者控制元件ASP.NET控制元件
- 給datagrid控制元件建立穩固的雙向排序(asp.net) (轉)控制元件排序ASP.NET
- ASP.NET效能優化-頁面及控制元件ASP.NET優化控制元件
- Xamarin XAML語言教程控制元件模板的模板繫結控制元件
- 【轉載】asp.net動態載入ascx使用者控制元件ASP.NET控制元件
- Avalonia的模板控制元件(Templated Controls)控制元件
- XLD建立形狀匹配的模板
- 解決Asp.net中翻頁問題的自定義使用者控制元件 (轉)ASP.NET控制元件
- ASP.NET驗證控制元件的使用ASP.NET控制元件
- WPF 控制元件模板ControlTemplate控制元件
- laravel建立郵件模板Laravel
- 建立Maven模板專案Maven
- 在 ASP.NET 的 Web.config 檔案中註冊使用者控制元件ASP.NETWeb控制元件
- asp.net的廣告控制元件Adrotator的使用ASP.NET控制元件
- 小議ASP.NET模板引擎技術的使用ASP.NET
- 建立自定義專案模板
- Windows Phone 7 不溫不火學習之《建立使用者控制元件》Windows控制元件
- VS2005入門之建立及使用使用者控制元件控制元件
- 新ASP.NET圖表控制元件ASP.NET控制元件
- 介紹ASP.NET控制元件IDASP.NET控制元件
- 從零開始實現ASP.NET Core MVC的外掛式開發(二) - 如何建立專案模板ASP.NETMVC
- 【RickTsuei】寫一個簡單的ASP.NET Web應用程式線上使用者列表控制元件ASP.NETWeb控制元件
- asp.net的優化ASP.NET優化
- SAP CRM如何建立支援Web Service的word模板Web
- SAP CRM如何建立支援Web Service的PDF模板Web
- ASP.NET 伺服器控制元件的生命週期ASP.NET伺服器控制元件
- 【張逸】ASP.Net中控制元件的EnableViewState屬性ASP.NET控制元件View
- 在ASP.NET Core中建立自定義端點視覺化圖ASP.NET視覺化
- android:建立自定義控制元件Android控制元件
- qt程式建立及模板程式碼分析QT
- NPOI之使用EXCEL模板建立報表Excel
- ASP.NET Web Forms – Button 控制元件簡介ASP.NETWebORM控制元件
- ASP.NET Web Forms – Repeater 控制元件簡介ASP.NETWebORM控制元件
- 為ASP.NET控制元件加入快捷選單ASP.NET控制元件
- asp.net 2.0揭祕:使用Rich控制元件ASP.NET控制元件
- asp.net DataList控制元件分頁程式碼ASP.NET控制元件