Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

CompareValidator, Dates, changement de Culture du thread...

1 réponse
Avatar
gauthier
Bonjour,

Je développe actuellement une application web disponible dans plusieurs
langues.
Lorsqu'on change la langue des pages (grâce à un menu déroulant), on
effectue un changement de culture du thread courant :
System.Threading.Thread.CurrentThread.CurrentUICulture = SelectedCulture;

Le problème, est que j'utilise des CompareValidator sur les dates:

codebehind:
dateCompareValidator.ValueToCompare = DateTime.Today.ToShortDateString();

frontcode:
<asp:CompareValidator id="dateCompareValidator" runat="server"
ControlToValidate="dbFooterStatusEndDate" Type="Date"
Operator="GreaterThanEqual" display="none"/>

si la culture du thread courant n'est pas la même que
celle du serveur d'application, alors j'ai une exception (je suis passé en
anglais alors que le serveur d'application est en français):

Page : http://localhost/Nemo.WebApplication/supplier/search/default.aspx
Méthode : System.Web
Message d'erreur : La valeur '6/29/2005' de la propriété ValueToCompare de
'dateCompareValidator' ne peut pas être convertie en type 'Date'.
Nom de l'exception : HttpException
Stack Trace : at
System.Web.UI.WebControls.CompareValidator.ControlPropertiesValid()
at System.Web.UI.WebControls.BaseValidator.get_PropertiesValid()
at System.Web.UI.WebControls.BaseValidator.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
....

Quelle est la solution a ce problème?

Merci beaucoup.

Nicolas

1 réponse

Avatar
Paul Bacelar
Pensez aussi à changer la propriété "CurrentCulture" (sans le UI :-) )

--
Paul Bacelar

"gauthier" wrote in message
news:
Bonjour,

Je développe actuellement une application web disponible dans plusieurs
langues.
Lorsqu'on change la langue des pages (grâce à un menu déroulant), on
effectue un changement de culture du thread courant :
System.Threading.Thread.CurrentThread.CurrentUICulture = SelectedCulture;

Le problème, est que j'utilise des CompareValidator sur les dates:

codebehind:
dateCompareValidator.ValueToCompare = DateTime.Today.ToShortDateString();

frontcode:
<asp:CompareValidator id="dateCompareValidator" runat="server"
ControlToValidate="dbFooterStatusEndDate" Type="Date"
Operator="GreaterThanEqual" display="none"/>

si la culture du thread courant n'est pas la même que
celle du serveur d'application, alors j'ai une exception (je suis passé en
anglais alors que le serveur d'application est en français):

Page : http://localhost/Nemo.WebApplication/supplier/search/default.aspx
Méthode : System.Web
Message d'erreur : La valeur '6/29/2005' de la propriété ValueToCompare de
'dateCompareValidator' ne peut pas être convertie en type 'Date'.
Nom de l'exception : HttpException
Stack Trace : at
System.Web.UI.WebControls.CompareValidator.ControlPropertiesValid()
at System.Web.UI.WebControls.BaseValidator.get_PropertiesValid()
at System.Web.UI.WebControls.BaseValidator.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
....

Quelle est la solution a ce problème?

Merci beaucoup.

Nicolas