2010-09-08 4 views
1

J'extension de la tellerick RadGrid contrôle pour lui donner un CustomSearchControl en option.RadGrid override CreateChildControls

protected override void CreateChildControls() 
{ 

    this.Controls.Add(CustomSearchControl); 
    base.CreateChildControls(); 
    this.Controls.Add(CustomSearchControl); 
} 

Il semble que base.CreateChildControls() doit avoir un contrôle clair appellent parce que la première disparaît CustomSearchControl.

J'ai essayé ceci:

protected override void CreateChildControls() 
{ 
    base.CreateChildControls(); 
    this.Controls.AddAt(0,CustomSearchControl); 
    this.Controls.Add(CustomSearchControl); 
} 

Mais il crée une erreur viewstate ... car ni le contrôle est ajouté à l'état d'affichage et l'insert se brise la hiérarchie de la collection de contrôles.

Répondre

1

Je viens de remarquer cela a été laissé ouvert depuis longtemps. Je suppose que je ne suis jamais revenu pour dire que j'ai découvert la source de mon chagrin. Fondamentalement, il y a deux définitions pour la méthode CreateChildControls dans le RadGrid. Celui que je devais remplacer a une signature int return. Une fois que j'ai utilisé cette méthode par opposition à la méthode void par défaut, les contrôles ont été ajoutés avec succès à l'état viewstate et tout était correct avec le monde.