2012-06-19 53 views
1

我正在嘗試創建一個可以像面板一樣包裝內容的ascx控件。我希望做類似的東西 -「ascx」用戶控件可以包裝內容嗎?

<%@ Register TagPrefix="FOO" TagName="Section" Src="CollapsibleSection.ascx" %> 
    <Foo:Section runat="server"> 
     [ Section of asp.net webforms page ] 
    </Foo:Section> 

它已經有一段時間,因爲我已經做了網頁表格,並且可以不記得,如果這是可能的嗎?雖然我可以編寫完全自定義的控件,但如果可以的話,我的應用程序還有很多優點。

回答

3

這被稱爲模板控件。

這裏有一個簡單的教程解釋這是如何在C#實現和VB.Net:How to: Create Templated ASP.NET User Controls

從MSDN引用(以上鍊接):

  1. 在.ascx文件,添加一個ASP.NET PlaceHolder控件您希望模板顯示的位置。
  2. 在用戶控件的代碼中,實現一個ITemplate類型的屬性。
  3. 定義一個實現INamingContainer接口的服務器控件類,作爲創建 模板實例的容器。這被稱爲模板的命名容器。
  4. 將TemplateContainerAttribute應用於實現ITemplate的屬性,並將模板的名稱類型 作爲參數傳遞給屬性的構造函數。
  5. 在控件的Init方法中,重複以下步驟一次或多次:
    • 創建命名容器類的實例。
    • 在命名容器中創建模板實例。
    • 將命名容器實例添加到PlaceHolder服務器控件的Controls屬性中。
相關問題