2010-11-13 101 views
1

在我的ascx標記,我有下面的代碼,我想移動到後臺代碼:如何以編程方式創建模板佈局部分?

<fs3:LanguageBar CssClass="setIn" ID="languageBar" PostBack="True" runat="server"> 
    <LayoutTemplate> 
     <fs3:LanguageList ID="languageList" runat="server" CssClass="setIn"> 
      <ItemTemplate> 
       <asp:HyperLink ID="listItem" CssClass="emptyLang" runat="server" /> 
      </ItemTemplate> 
      <CurrentItemTemplate> 
       <asp:Label ID="listItem" CssClass="currentLang" runat="server" /> 
      </CurrentItemTemplate> 
      <SelectedItemTemplate> 
       <asp:HyperLink ID="listItem" CssClass="filledLang" runat="server" /> 
      </SelectedItemTemplate> 
     </fs3:LanguageList> 
    </LayoutTemplate> 
</fs3:LanguageBar> 

如何創建這個程序,所以我可以將它添加到頁面?

回答

0

您可以連接Control.Init事件來創建所需的控件(在本例中爲LanguageBar),然後按希望顯示的順序將它們添加到Control.Controls集合中。

然後,您可以設置屬性,並將合適的集合添加到LanguageBar對象本身中。會有各種模板的成員屬性;你不得不專門學習控件的API,但是一旦習慣它,它應該是相當簡單的。

要記住的重要一點是,您必須在控件的每次加載時重新創建這些控件 - 無論是否回發。您可能需要一個Control級別的變量來保存您希望直接插入到ascx控件本身的控件,以便您可以在ascx控件的Load和其他事件中引用它。

對模板的使用本身是更復雜一點,但這裏的一些信息,讓你沿着這些線路一般開始:

http://iridescence.no/post/Using-Templated-Controls-Programmatically.aspx

http://forums.asp.net/p/1589688/4026373.aspx

http://msdn.microsoft.com/en-us/library/aa289501%28VS.71%29.aspx

相關問題