Domanda

Un asp:. RangeValidator prende l'informazioni cultura dalla pagina / filo e tutti i consigli on-line intorno a ottenere la giusta cultura sembra essere quella di impostare il CultureInfo sul filo

blog ovest vento di Rick Strahl è un consiglio tipico

Tuttavia, a causa di problemi che eseguono il codice del server in questo modo, stiamo escludendo il codice che usavamo in precedenza che ha seguito questo consiglio.

C'è un modo per me di impostare la cultura di un RangeValidator senza fare confusione con la cultura principale pagina / discussione:

La mia domanda è. Voglio che i RangeValidators a rispettare le impostazioni del browser, ma purtroppo sono nel rispetto della cultura server invece.

È stato utile?

Soluzione

Per quanto non ci sono state risposte a questa che sto per rispondere alla mia domanda.

La risposta è che questo non sembra essere possibile- non v'è alcun modo per impostare la cultura per un validatore direttamente.

Il modo in cui sono stato in grado di realizzare i miei obiettivi di avere il codice lato server che esegue sempre in una cultura inglese ma poi facendo i validatori a lavorare nella cultura del browser è stato quello di impostare la CurrentCulture filo alla fine del Page_PreRender. Pertanto fino a questo punto il codice viene eseguito nella cultura inglese, ma abbiamo impostato la cultura in tempo per essere in vigore per quando il runtime asp.net lo usa per impostare i validatori.

Questo funziona bene per l'azione ciente lato dei validatori, nel mio caso permettendo agli utenti su un browser francese per inserire i numeri in un formato francese. Ma v'è un ulteriore gotcha- se si dispone di codice per la convalida lato server su inviare / postback, questa convalida ora perire- sembra che il postback le impostazioni di lingua originali del validatore non vengono mantenute, usano la cultura in atto al momento in cui vengono convalidati sul lato server:., naturalmente, i numeri francesi non sono visti poi come validi, e la convalida non riesce

Spero che questo aiuta chiunque altro che incontra lo stesso problema

Altri suggerimenti

Un'altra risposta (e secondo me migliore) è quello di utilizzare il codice del server in linea nella RangeValidator:

<asp:RangeValidator ID="txtLockMaxRangeValidator" runat="server"
     ValidationGroup="templateInfo" ControlToValidate="txtLockMaxFontSize"
     CssClass="validatorTextbox" 
     MinimumValue="<%# (0.01).ToString(System.Globalization.CultureInfo.CurrentUICulture)%>" 
     MaximumValue="9999" Type="Double" Text=">0 and <=9999" 
     ToolTip="<%$ Resources:Resource, TemplateInfo_maxFontValidator %>" 
     Display="Dynamic" />

questo link .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top