Salutations!Suppression de l'attribut de classe CSS d'une balise dans un contrôle de serveur personnalisé
J'ai créé une classe de bouton personnalisé pour rendre les éléments suivants:
<span class="btnOrange">
<input type="submit" id="ctl00_MainContent_m_GoBack" value="Back" name="ctl00$MainContent$m_GoBack"/>
</span>
Cependant, il rend comme celui-ci à la place (notez l'attribut étrangère « classe » dans la balise INPUT):
<span class="btnOrange">
<input type="submit" class="btnOrange" id="ctl00_MainContent_m_GoBack" value="Back" name="ctl00$MainContent$m_GoBack"/>
</span>
Ma classe de bouton personnalisé ressemble à ceci:
[ToolboxData(@"<{0}:MyButton runat=server></{0}:MyButton>")]
public class MyButton : Button
{
public override void RenderBeginTag(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, this.CssClass);
writer.RenderBeginTag("span");
base.RenderBeginTag(writer);
}
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.RenderEndTag();
base.RenderEndTag(writer);
}
}
comme je ne dois définir les clas s attribut pour la balise SPAN, est-il possible de ne pas inclure ou "vide" l'attribut de classe pour le tag INPUT?
Malheureusement, la L'objet writer n'a pas de méthode "RemoveAttribute" ou similaire. Et l'appel de writer.AddAttribute (HtmlTextWriterAttribute.Class, "") crée en réalité deux attributs CLASS dans la balise INPUT; un avec "btnOrange" comme valeur et l'autre avec une valeur vide. – Bullines