ASP.NET Community Starter Kit的一个bug
这段代码位于,
Engine/Modules/Events/Controls目录的DataPicker.cs文件里
找到Render()代码,下面给出了修改后的代码,供大家参考。
protected override void Render(HtmlTextWriter tw)
{
// Get Date Parts
string[] dateParts;
try
{
DateTimeFormatInfo objDateInfo = DateTimeFormatInfo.CurrentInfo;
dateParts = objDateInfo.ShortDatePattern.Split('/');
if (objDateInfo.ShortDatePattern.IndexOf("/")>0)
dateParts = objDateInfo.ShortDatePattern.Split('/');
else
dateParts = objDateInfo.ShortDatePattern.Split('-');
}
catch
{
dateParts = new string[]{"m","d","y"};
}
tw.RenderBeginTag(HtmlTextWriterTag.Table);
tw.RenderBeginTag(HtmlTextWriterTag.Tr);
tw.RenderBeginTag(HtmlTextWriterTag.Td);
RenderDatePart(dateParts[0],tw);
tw.RenderEndTag();
tw.RenderBeginTag(HtmlTextWriterTag.Td);
RenderDatePart(dateParts[1],tw);
tw.RenderEndTag();
tw.RenderBeginTag(HtmlTextWriterTag.Td);
RenderDatePart(dateParts[2],tw);
tw.RenderEndTag();
tw.RenderEndTag(); // close row
tw.RenderEndTag(); // close table
}
之所以有这段错误,在于时间表示上。对于一个日前,SQL Server数据库能够自动识别下面2种格式: 2005-8-1和2005/8/1
而在实际页面里使用的是-符号表示,但是判断时,使用/进行判断,所有发生了错误