Expression régulière Validator - affichage du bloc plutôt que dans la ligne lors de la dynamique
Est-il possible de faire un RegularExpressionValidator rendu lui-même à l'aide de display:block, au lieu de display:inline dans son attribut de style, lors de la configuration de l'Affichage à la propriété "Display='Dynamique'"?
J'ai essayé de le placer à la feuille de style, mais ce sera écrasé quand il est affiché dans la page.
Grâce
OriginalL'auteur Tom | 2010-10-14
Vous devez vous connecter pour publier un commentaire.
L'idée ci-dessus sur l'utilisation d'un css avec !Important était si proche que je pouvais sentir le goût. À l'aide de cette idée et l'attribut CSS sélecteurs je l'ai fait. J'ai dû utiliser le terme "contient" sélecteur pour faire fonctionner le FF, mais maintenant, je l'ai testé dans IE10, FF et Chrome et jusqu'à présent, il est de travail. Il est vraiment très simple. Voici un exemple de programme de validation dans ma page aspx
Prochaine j'ai un style de valerror.
Qui est-il. comment cela fonctionne: lorsque la durée de modifications du style de "display:none" à "display:inline", l'attribut sélecteur sur la durée de coups de pied dans l'oblige à être un bloc. Vous avez juste besoin de faire UN css entrée comme celle ci-dessus et assurez-vous de faire chaque validateur cette classe.
Cela a très bien fonctionné pour moi aussi! +1 pour la serviabilité
Pourquoi ce n'est pas acceptée? J'ai voté jusqu'c'est une excellente solution.
+1 merci - cela a résolu quelque chose, je me battais avec pendant des heures - ce qui doit être accepté comme réponse
Sweet moïse, merci
OriginalL'auteur
Juste envelopper le validateur dans un div:
-1 parce que la question est à propos d'un validateur avec Display="dynamic", ce qui signifie qu'ils ne veulent pas le programme de validation pour être visible jusqu'à ce que le javascript détermine que c'est une erreur valide et en utilisant une div qui va provoquer le validateur à prendre de la place.
La div a une largeur et une hauteur de 0 tant que le Validateur n'est pas affiché, ce qui la rend invisible. Donc: +1
OriginalL'auteur
J'ai trouvé le seul moyen d'avoir le contrôle de ne pas prendre de l'espace lorsqu'il est masqué et également l'affichage de bloc est de mettre un
<br />
tag après chaque validateur.Donc, au départ, nous avons ceci:
Alors si il y a une erreur, il ressemble à ceci:
OriginalL'auteur
Comment sur l'utilisation de
!important
dans la classe CSS?Cela ne fonctionne pas pour les dynamiques des validateurs comme il remplace le display: block; que les cache dans la première place.
OriginalL'auteur
J'ai trouvé une solution qui permet de résoudre ce à l'aide d'un modèle de contrôle:
CSS:
Le html résultant est un peu brouillon, mais il permet à un display:block qui pousse la validation dans la ligne suivante;
OriginalL'auteur
Fonctionne avec
.Display = ValidatorDisplay.Static
pour moi, ne l'a pasEnableClientScript
àtrue
.Mise à jour de 1 et affectant
cssClass
avec une classe ayantdisplay: block;
à chaqueregValidator
Mise à jour 2 oublier ce que j'ai écrit avant, je suppose que vous n'avez pas de soins à ce sujet, mais pour les autres je dirais, je pense que c'est un oubli de MS sur
regExpVal
de ne pas répondre àdisplay: block
causecustomValidator
semble fonctionner..Donc pour le
regExpValidator
j'ai trouvé que la miseclear:left;
etfloat:left
œuvres, et si l'élément en dessous d'eux se déplace alors que les erreurs s'affiche, vous mettezclear: left
.OriginalL'auteur
Cela peut aider (prises de MSDN):
OriginalL'auteur
ASP.NET injecte un fichier javascript avec le code de validation, c'est la deuxième balise de script après la forme de la balise dans le code HTML. Il contient une fonction "ValidatorUpdateDisplay" qui est appelée pour afficher/masquer les messages de validation. Cela peut être substituée à utiliser les différents javascript pour afficher/masquer par exemple, si vous utilisez jquery:
Ou dans votre cas:
Suffit de mettre ce code dans une balise script après l'ASP.NET formulaire d'ouverture de la balise. Remarque cela va affecter tous les validateurs sur la page, et ignore si l'Affichage est mis à la Dynamique - si vous voulez soutenir ce que vous pourrait l'étendre par le code de la fonction d'origine ou de code personnalisé pour vérifier le type de programme de validation.
Voir aussi cette question Pouvez-vous personnalisés côté client javascript de Validation de la norme ASP.NET Formulaire Web Validateurs?
OriginalL'auteur