2009-03-19 7 views
1

J'ai écrit un contrôle serveur personnalisé qui hérite de CompositeControl. Lorsque le contrôle est instancié, j'ajoute dynamiquement un TextBox à sa collection Controls. J'ai remplacé la propriété TabIndex de sorte que lorsqu'elle est définie, elle applique la valeur à la propriété TabIndex du contrôle TextBox enfant. Le problème est que lorsque CompositeControl est rendu, il inclut une balise span en tant que conteneur global et définit la propriété tabindex sur l'étendue ainsi que le contrôle d'entrée (TextBox). Cela fait que le curseur est en réalité sur la plage, ce qui n'est pas ce que je veux. Des idées sur la façon d'obtenir CompositeControl pour ne pas rendre la propriété tabindex sur l'étendue?Comment arrêter la propriété TabIndex de CompositeControl à partir de la définition de tabindex sur l'étendue du conteneur

Répondre

2

J'ai répondu à ma propre question. Il s'avère que la balise span wrapper n'est pas vraiment nécessaire du tout, et vous pouvez l'enlever en incluant simplement les remplacements suivants dans la classe héritant de CompositeControl:

public override void RenderBeginTag(HtmlTextWriter writer) 
{ 
    // NOOP 
} 

public override void RenderEndTag(HtmlTextWriter writer) 
{ 
    // NOOP 
} 
Questions connexes