我正在使用GM Date Picker ..我的代码如下:
<cc1:GMDatePicker ID="DatePicker" AutoPosition="false" runat="server" CalendarTheme="Blue"
Style="z-index: 252; left: 0px; position: absolute; top: 0px" DateFormat="dd/MM/yyyy"
TodayButtonText="">
我已经给出了上面提到的日期格式。但是,它没有采用这种格式。它只采用这种格式MM / dd / YYYY。当我保存时,它将采用当前日期..如果我以MM / dd / YYYY格式给出,它将采用正确的日期值..
如何克服这个问题?
答案 0 :(得分:1)
此控件在Date属性get方法中有一个错误,每当从文本框中读取日期时,不考虑日期格式值。这是Date属性get方法的一个确切行,它抛出异常:
DateTime time = DateTime.Parse(this.dateTextBox.Text, this.Culture);
您获取当前日期的原因是控件缓存所有异常都会返回当前日期,以防万一发生。
那么你做了什么,除了找到另一个控件或要求供应商修复这个。解决方法是直接从控件的文本框中获取日期,而不通过反射使用其Date属性并解析它。以下是如何执行此操作的示例:
TextBox textBox = (TextBox)DatePicker.GetType().InvokeMember("dateTextBox",
BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic,
null, DatePicker, null);
if (textBox != null)
{
DateTimeFormatInfo format = (new CultureInfo(DatePicker.Culture.Name)).DateTimeFormat;
format.ShortDatePattern = DatePicker.DateFormat;
DateTime date = DateTime.Parse(textBox.Text, format);
Console.WriteLine(date.ToString());
}
希望这有帮助,尊重