我知道很多像这样的问题,但我找不到一个可以帮助我的案例。
我有一个DataGridView,我插入没有数据集的行和列,但是从列表中插入。我检查该列是否包含日期时间类型及其成功:
string[] formats = {"M/d/yyyy", "MM/dd/yyyy",
"d/M/yyyy", "dd/MM/yyyy",
"yyyy/M/d", "yyyy/MM/dd",
"M-d-yyyy", "MM-dd-yyyy",
"d-M-yyyy", "dd-MM-yyyy",
"yyyy-M-d", "yyyy-MM-dd",
"M.d.yyyy", "MM.dd.yyyy",
"d.M.yyyy", "dd.MM.yyyy",
"yyyy.M.d", "yyyy.MM.dd",
"M,d,yyyy", "MM,dd,yyyy",
"d,M,yyyy", "dd,MM,yyyy",
"yyyy,M,d", "yyyy,MM,dd",
"M d yyyy", "MM dd yyyy",
"d M yyyy", "dd MM yyyy",
"yyyy M d", "yyyy MM dd",
"dd MMMM yyyy", "dd MMM yy"
};
List<string> _columnList = new List<string>();
List<HtmlNode> _descList = new List<HtmlNode>();
DateTime date;
GetResultsDecendants(_descList, targetNode);
foreach( var _desc in _descList)
{
foreach( string dtFormat in formats)
{
if(DateTime.TryParseExact(_desc.InnerText, dtFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
finalDateFormat = dtFormat;
}
}
if ( finalDateFormat != null)
{
_columnList.Add(_desc.Name+" -Date");
}
_columnList.Add(_desc.Name);
创建coluns后,我将特定列的格式设置为正确的格式
dataGridView.Columns[colHasDate].DefaultCellStyle.Format = finalDateFormat;
我甚至确保该列中每个单元格的值都具有DateTime
的类型if (colList[colindex].Contains("Date"))
{
dgvRow.Cells.Add(new DataGridViewTextBoxCell()
{
Value = listItem.InnerText,
ValueType = typeof(DateTime)
}
);
}
但是,当我尝试通过单击列名称对其进行排序时,它几乎失败,它将显示最早的第一个,但从中它几乎是随机的。 请帮忙。