Я знаю, что таких вопросов много, но я не нашел такого, который помог бы моему делу.
У меня есть DataGridView, и я вставляю строки и столбцы без набора данных, но из списка.Я проверяю, будет ли столбец содержать тип datetime и будет ли он успешным:
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);
После того, как я создаю столбцы, я устанавливаю правильный формат конкретного столбца
dataGridView.Columns[colHasDate].DefaultCellStyle.Format = finalDateFormat;
Я даже делаюУбедитесь, что значение каждой ячейки в этом столбце имеет тип DateTime
if (colList[colindex].Contains("Date"))
{
dgvRow.Cells.Add(new DataGridViewTextBoxCell()
{
Value = listItem.InnerText,
ValueType = typeof(DateTime)
}
);
}
Но когда я пытаюсь отсортировать его, щелкнув по имени столбца, он почти не работает, сначала он покажет самый старый, но из этого егопочти случайно.Пожалуйста, помогите.