اضبط الثقافة على ASP.NET RangeValidator
-
21-09-2019 - |
سؤال
A ASP: يأخذ RangeValidator معلومات الثقافة من الصفحة/ الموضوع ، ويبدو أن جميع النصائح عبر الإنترنت حول الحصول على الثقافة الصحيحة هي ضبط الثقافة على الخيط.
مدونة ريك ستراهل ويست ريح نصيحة نموذجية
ومع ذلك ، نظرًا لمشاكل في تشغيل رمز الخادم بهذه الطريقة ، فإننا نقوم بتجريد الكود الذي كنا نستخدمه مسبقًا بعد هذه النصيحة.
سؤالي هو: هل هناك طريقة لي لتعيين ثقافة RangeValidator دون العبث مع ثقافة الصفحة الرئيسية/ الخيط. أريد أن يحترم RangeValidators إعدادات المتصفح ، لكن للأسف ، يحترمون ثقافة الخادم بدلاً من ذلك.
المحلول
نظرًا لعدم وجود إجابات على هذا ، سأجيب على سؤالي.
الجواب هو أن هذا لا يبدو ممكنًا- لا توجد وسيلة لتعيين الثقافة لمقحة مباشرة.
كانت الطريقة التي تمكنت بها من تحقيق أهدافي المتمثلة في تشغيل رمز من جانب الخادم دائمًا في ثقافة إنجليزية ، ولكن تسبب في العمل في ثقافة المتصفح هي تعيين ترابط زراعة المرأس في نهاية Page_Prerender. لذلك حتى هذه النقطة ، يتم تشغيل الكود في الثقافة الإنجليزية ، لكننا نضع الثقافة في الوقت المناسب حتى تكون سارية المفعول عندما يستخدمها وقت تشغيل ASP.NET لإعداد المصادقة.
هذا يعمل بشكل جيد للعمل من جانب cient of the Doothators ، في حالتي يسمح للمستخدمين في متصفح فرنسي بإدخال أرقام بتنسيق فرنسي. ولكن هناك gotcha إضافي- إذا كان لديك رمز للتحقق من صحة جانب الخادم عند إرسال/ postback ، فإن هذا التحقق من صحة سيفشل الآن- يبدو أنه في Postback لا يتم الاحتفاظ بإعدادات الثقافة الأصلية للمقحة ، فإنهم يستخدمون الثقافة في مكانها في مكانها الوقت يتم التحقق من صحة الخادم: بالطبع لا يتم النظر إلى الأرقام الفرنسية على أنها صالحة ، وفشل التحقق من الصحة.
آمل أن يساعد هذا أي شخص آخر يواجه نفس المشكلة
نصائح أخرى
الإجابة الأخرى (و IMHO أفضل) هي استخدام رمز الخادم المضمّن في 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" />
مقترح من قبل هذا الرابط.