2 votes

Inline script ne se résout pas dans un contrôle personnalisé ASP.Net

Actuellement, je travaille avec un personnalisé validateur d'expressions régulières (malheureusement) .

J'essaie de définir le modèle Regex en utilisant un script en ligne côté serveur comme ceci :

ValidationExpression="<%= RegExStrings.SomePattern %>"

Cependant, le script ne se résout pas au code côté serveur. Au lieu de cela, il est interprété littéralement et je me retrouve avec quelque chose comme ceci dans le balisage rendu :

ctl00_DefaultContent_regexValidatorInvitation.validationexpression = "<%= RegExStrings.SomePattern %>";

Avez-vous une idée de la raison pour laquelle ce problème ne se résout pas correctement ?

0voto

PhilGriffin Points 348

C'est pris comme une chaîne de caractères littérale, essayez

ValidationExpression='<%= RegExStrings.SomePattern %>'

Edit : Ce qui précède ne fonctionne pas, j'ai essayé de voir comment faire cela sans succès, j'ai l'habitude de définir les propriétés dans le code-behind et seulement utiliser cette syntaxe pour le databinding quand je dois le faire. Je serais intéressé de savoir si cela peut être fait aussi.

0voto

Vince Panuccio Points 5766

Si votre validateur d'expressions régulières possède l'attribut runat="server", modifiez-le dans le code. Ce serait beaucoup plus facile.

0voto

devstuff Points 5881

Vous utilisez une expression de liaison de données sur un contrôle qui n'est pas lié aux données. Vous devez appeler DataBind(), ou utiliser une implémentation d'ExpressionBuilder. Un ExpressionBuilder simple pour la liaison à un code arbitraire se trouve à l'adresse suivante http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X