C # asp.net: Comment faire pour supprimer la balise span de WebControl lors du rendu
Lors de l'utilisation d'un asp.net Case à cocher (et en out cas, héritée d'une Case à cocher) il rend une durée autour de la case de saisie de contrôle, ce contrôle span affecte les scripts jQuery.
Est-il possible de supprimer cette durée lors du rendu?
source d'informationauteur Mark Redman
Vous devez vous connecter pour publier un commentaire.
Trouvé cette astuce utile:
Dans le Code Derrière, utilisez InputAttributes plutôt que des Attributs.
Par Exemple, tapez ceci:
au lieu de cela:
ou au lieu de inline déclarations:
Les deux derniers seront la cause de l'emballage durée.
Je viens d'essayer cela sur une page de test et je n'obtiens pas le autour de ma Case à cocher contrôle... êtes-vous sûr que c'est la Case qui est rendu présent? Est-ce conditionnel?
Mise à JOUR: OK, il semble être subordonnée à savoir si ou non la Case a des attributs supplémentaires, y compris un CssClass... ou "désactivé" attribut.
Je ne sais pas si cela va fonctionner sur cet exemple particulier. Mais si vous faites votre propre WebControl et vous ne voulez jamais à rendre s'étend autour de lui-même, vous pouvez remplacer les Contrôles de la méthode render comme ceci:
Je suppose que vous pouvez ajouter le même hérité d'une Case à cocher... quelque chose comme ceci:
Le problème de base de la solution est mieux expliqué ici:
http://www.marten-online.com/net/stripping-span-tag-from-webcontrol.html
J'ai passé les 3 dernières heures en tirant mes cheveux pour trouver une solution à ce problème.
Voici ce qui est sorti:
Avec le contrôle personnalisé, vous aurez besoin d'un custom HtmlTextWriter:
Juste pour info, à l'aide de:
a le même effet, mais:
À L'Aide De Jquery
Vous pouvez utiliser la saisie/contrôle de case à cocher directement si vous n'avez pas besoin d'un label, ou d'en mettre une de vous-même:
Un CSS Adaptateur peut être en mesure de supprimer la durée autour de la case ou de l'étiquette, mais je n'en ai pas vu à cette fin.
Pourquoi ne pas vous retirer la durée de l'aide .supprimer avec jquery ?
Pouvez-vous utiliser un littéral de contrôle à la place? Il y a une grande différence entre ces deux alternatives:
J'ai trouvé que la mise en œuvre d'un constructeur comme celui ci-dessous, vous pouvez spécifier la balise conteneur pour votre contrôle.
Vous pouvez remplacer le
HtmlTextWriterTag
avec les aviable options, telles que la Div dans l'exemple ci-dessus. La valeur par défaut estSpan
.devrait faire
Essayez d'ajouter un constructeur de votre classe qui ressemble à ceci:
Si vous remarquez, les contrôles seront rendu en travées par défaut puisque c'est ce que le "WebControl" utilise (si vous utilisez un Réflecteur) :
De référence:
http://aspnetresources.com/blog/stripping_span_from_webcontrol
je me demande, est-il une raison no1 mentionné ceci:
j'ai eu cette lecture http://aspnetresources.com/blog/stripping_span_from_webcontrol que flaviotsf mentionné
Cela vous permettra d'utiliser la case à cocher normalement, quand même avoir du serveur d'appel de code côté, et de l'utilisation de la bascule de bootstrap. (Je suis en utilisant le Inspina thème, mais il doit être le même format pour les autres bascule)