
                                            Jerome MAILLEY
                                            
                                    
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                        
                                        Jerome MAILLEY
                                        asked on 11 Oct 2016, 09:33 AM
                                    
                                Hi,
First of all, I'm using the latest version of your Telerik.Web.UI.dll (2016.3.914.40). I'm trying to set RadDropDownTree HeaderTemplate dynamically as I did for RadComboBox. Here is my code :
<telerik:RadDropDownTree ID="RadDropDownTree" runat="server" EnableViewState="false" CheckBoxes="None"      OnNodeDataBound="RadDropDownTree_NodeDataBound" <br>    DataFieldID="ID" DataFieldParentID="ParentID" DataTextField="Text" DataValueField="Value"<br>    Width="100%" RenderMode="Lightweight" Visible="false" Skin="Metro"><br></telerik:RadDropDownTree>5 Answers, 1 is accepted
0
                                
                                                    Jerome MAILLEY
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 11 Oct 2016, 09:42 AM
                                            
                                        protected void Page_Load(object sender, EventArgs e){//....RadDropDownTree.HeaderTemplate = new HeaderTemplate(headerItem);//....}public class HeaderTemplate : ITemplate { ComboBoxItem _headerItem; public HeaderTemplate(ComboBoxItem headerItem) { this._headerItem = headerItem; } public void InstantiateIn(Control container) { if (!string.IsNullOrEmpty(_headerItem.Code)) { Label labelCode = new Label(); labelCode.Font.Bold = true; labelCode.Text = _headerItem.Code;container.Controls.Add(labelCode);Label labelDash = new Label(); labelDash.Text = " - "; container.Controls.Add(labelDash); } Label labelLabel = new Label(); labelLabel.Font.Italic = true;labelLabel.Text = _headerItem.Label;container.Controls.Add(labelLabel);}}public class ComboBoxItem{public string Code { get; set; }public string Label { get; set; }}0
                                
                                                    Jerome MAILLEY
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 11 Oct 2016, 09:45 AM
                                            
                                        However, it's does not work. Its seems that ITemplate is not made for RadDropDownTree HeaderTemplate : the InstantiateIn function is never called. Is there a way to make it work ?
Thanks
0
                                Hello Jerome,
The DropDownTree is initialized earlier, thus its HeaderTemplate has to be set earlier than the page's Load event - in the PreInit event:
Regards,
Ivan Danchev
Telerik by Progress
                                        The DropDownTree is initialized earlier, thus its HeaderTemplate has to be set earlier than the page's Load event - in the PreInit event:
protected void Page_PreInit(object sender, EventArgs e){    RadDropDownTree1.HeaderTemplate = new HeaderTemplate(headerItem);}Regards,
Ivan Danchev
Telerik by Progress
Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
0
                                
                                                    Jerome MAILLEY
                                                    
                                            
    Top achievements
    
            
                 Rank 1
                Rank 1
            
    
                                                
                                                answered on 13 Oct 2016, 02:49 PM
                                            
                                        Hello Ivan,
I cannot use the Page_PreInit function because the RadDropDownTree is in a UserControl so it's not fired.
According to this, I tried the following code but it does not work either:
protected void Page_Init(object sender, EventArgs e){    RadDropDownTree1.HeaderTemplate = new HeaderTemplate(headerItem);}
I hope you will help me to figure it out.
Thanks,
0
                                Hello Jerome,
As I explained in my previous reply, due to the early initialization of the DropDownTree the template must be set in the PreInit event. Both the Init and Load events are fired too late, thus neither the main page's nor the UserControl's Init and Load events are not suitable for setting the template.
Regards,
Ivan Danchev
Telerik by Progress
                                        As I explained in my previous reply, due to the early initialization of the DropDownTree the template must be set in the PreInit event. Both the Init and Load events are fired too late, thus neither the main page's nor the UserControl's Init and Load events are not suitable for setting the template.
Regards,
Ivan Danchev
Telerik by Progress
Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
