Frage

asp An:. RangeValidator nimmt es die Kultur Info von der Seite / Thread und alle Online-Beratung rund um immer die richtige Kultur der Culture zu sein scheint auf den Faden zu setzen

Rick Strähls Westwind Blog ist typisch Beratung

Doch aufgrund von Problemen auf den Server-Code auf diese Weise ausgeführt wird, wir werden den Code Strippen wir vorher wurden unter Verwendung, die diesen Rat gefolgt.

Meine Frage ist: Gibt es eine Möglichkeit für mich, die Kultur eines RangeValidator zu setzen, ohne mit der Hauptseite / Thread Kultur Messing. Ich mag der RangeValidators die Browser-Einstellungen respektieren, aber leider respektieren sie die Server-Kultur statt.

War es hilfreich?

Lösung

Wie hat es keine Antworten auf diese werde ich meine eigene Frage beantworten.

Die Antwort ist, dass dies nicht zu sein scheint möglich- es keine Möglichkeit gibt, die Kultur für einen Validator direkt eingestellt werden.

Die Art und Weise, in der ich in der Lage war, meine Ziele mit dem serverseitigen Code läuft immer in einem Englisch Kultur zu erreichen, aber dann bewirkt, dass die Validatoren zur Arbeit im Browser Kultur war der Faden Current am Ende Page_PreRender einzustellen. Daher bis zu diesem Punkt der Code ausgeführt wird in Englisch, aber wir setzen die Kultur in der Zeit für sie für wirksam zu sein, wenn die asp.net Laufzeit verwendet es die Validierer einzurichten.

Dies funktioniert gut für die zient seitige Wirkung der Validatoren, in meinem Fall so dass Anwender auf einem französisch-Browser Zahlen in einem französisch-Format eingeben. Aber es gibt eine weitere gotcha- wenn Sie Code Validate Server-Seite haben auf einreichen / Postbacks wird diese Validierung nun fehler scheint es, dass die ursprünglichen Kultureinstellungen des Prüfers auf Postbacks werden nicht beibehalten, sie verwenden, um die Kultur an Ort und Stelle bei der Zeit, die sie validiert serverseitige. natürlich die französisch-Nummern werden dann nicht als gültig angesehen, und die Validierung fehlschlägt

Ich hoffe, das hilft jemand anderes, das gleiche Problem begegnet

Andere Tipps

Eine andere (und meiner Meinung nach besser) Antwort ist Inline-Server-Code in der RangeValidator zu verwenden:

<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" />

Vorgeschlagen von diesem Link .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top