Не удалось отсортировать столбец даты и времени DataGridView - PullRequest
0 голосов
/ 20 мая 2018

Я знаю, что таких вопросов много, но я не нашел такого, который помог бы моему делу.

У меня есть 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)
                    }
                    );
                }

Но когда я пытаюсь отсортировать его, щелкнув по имени столбца, он почти не работает, сначала он покажет самый старый, но из этого егопочти случайно.Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...