Смутно связано с тем, над чем я сейчас работаю... пара предложений, которые могут помочь: - Я также делаю это сразу после выполнения "Thread.CurrentThread.CurrentCulture =..."
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
Я лично создаю свой CalendarExtender динамически, но важной строкой является формат:
ce = new CalendarExtender();
ce.ID = "CalExtender";
ce.Format = ShortDatePatternDoubleDigit;
и в другом месте у меня есть этот статический метод:
public static string ShortDatePatternDoubleDigit
{
get
{
string shortDatePattern = Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern;
if (!shortDatePattern.Contains("MM"))
shortDatePattern = shortDatePattern.Replace("M", "MM");
if (!shortDatePattern.Contains("dd"))
shortDatePattern = shortDatePattern.Replace("d", "dd");
if (!shortDatePattern.Contains("yyyy"))
shortDatePattern = shortDatePattern.Replace("yy", "yyyy");
return shortDatePattern;
}
}
поскольку у нас есть клиенты в США и Великобритании, дата должна работать либо в мм/дд/гггг, либо в формате дд/мм/гггг (и мы используем расширитель маскированного редактирования, следовательно, используем две цифры для дней и месяцев).
На стороне клиента в javascript я могу получить доступ к строке формата, подобной этой (геттер), но я не знаю, можно ли ее установить, я не пробовал. Это может помочь вам в сценарии «без обратной передачи»:
var dateBox = $get('xxxx_DatePicker_TextBox');
var dateFormat = dateBox.CalendarBehavior._format; //this contains dd/MM/yyyy for example
Обратите внимание, что вам, возможно, придется снова изменить этот формат, например, я использую средство выбора даты пользовательского интерфейса jQuery, а MM интерпретируется как полное имя месяца, тогда как в C# MM — это двузначный месяц. Хуже того, yyyy в C# — это четырехзначный год, но для средства выбора даты jQuery yy — это четырехзначный год, так что yyyy в конечном итоге будет 20152015. Вы можете сделать грязное:
_format.replace(/M/g, "m").replace(/yy/g, "y")
person
Thierry_S
schedule
20.02.2015