| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > dataGridView сортировка |
| Автор: rthsobakas 23.9.2010, 14:20 |
| кто-нибудь в курсе как сделать сортировку(настроить вернее) по числам. То есть вот вы скинули грид на форму ,заполнили его и в 1 колонке у вас числа от 1 до 1000 например . Но он отсортирует не верно, так как он по символам сортирует строк. |
| Автор: CYBERDREAM 23.9.2010, 14:35 |
| Column1.ValueType = typeof (Int32); ну и значение тоже должны быть числовыми |
| Автор: rthsobakas 23.9.2010, 14:52 | ||
| я как бы не программно делаю таблицу, я программно её заполняю только и очищаю. А все остальное делаю в настройках грида. Это куда писать в форм_лоад?
ничего не измениться. |
| Автор: CYBERDREAM 23.9.2010, 14:55 |
| http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/72f8ba5a-0a93-4d2a-b054-a75e919f1b3d тут подробно сие дело описывают |
| Автор: A5uKa 23.9.2010, 14:56 | ||
ну там есть метод конечно ...
но это в одну сторону |
| Автор: rthsobakas 23.9.2010, 15:04 |
| A5uKa, совсем плохо как-то. хмм... подскажите хоть как в гугле правильно сформулировать тогда? Смысл в том что как бы надо чтобы строка ,которая добавляется должна становиться первой ,смещая остальные вниз. |
| Автор: A5uKa 23.9.2010, 15:06 | ||
Так можно обработать добавление. |
| Автор: CYBERDREAM 23.9.2010, 15:08 |
| если датагрид биндится к таблице, то в таблицу вставляй новую запись в начало. http://www.google.ru/search?client=opera&rls=ru&q=DataGridView+sort+numeric&sourceid=opera&ie=utf-8&oe=utf-8 |
| Автор: rthsobakas 23.9.2010, 15:09 | ||||
добавление выглядит так
и оно вставляет строку в самый конец. Добавлено через 1 минуту и 41 секунду
он биндится к XMl |
| Автор: CYBERDREAM 23.9.2010, 15:12 | ||
опля
|
| Автор: A5uKa 23.9.2010, 15:13 |
| А вариант работать с XML и Grid через DataSource - неа ? |
| Автор: CYBERDREAM 23.9.2010, 15:14 |
| не кошерно это) |
| Автор: rthsobakas 23.9.2010, 15:18 | ||||
хмм спасибо, возьму на заметку.
последнего нет в экспресс версии. Я как бы бесплатку использую |
| Автор: SergeyN7 22.7.2011, 21:54 |
| Можно реализовать заполнение нулями начала строк ячеек до определенной длины строки, затем сортировать, а потом снова удалить нули: //Добавляем нули в столбец, по которому надо сортировать string str2; for (int kt1 = 0; kt1 < (dataGridView1.RowCount - 1); kt1++) { if (dataGridView1.Rows[kt1].Cells[2].Value != null) { str2 = dataGridView1.Rows[kt1].Cells[2].Value.ToString(); while (str2.Length != 5) { str2 = str2.Insert(0, "0"); } dataGridView1.Rows[kt1].Cells[2].Value = str2; } } //Сортируем this.dataGridView1.Sort(dataGridView1.Columns["Column3"], ListSortDirection.Descending); //Удаляем нули в столбце string str2; for (int kt1 = 0; kt1 < (dataGridView1.RowCount - 1); kt1++) { if (dataGridView1.Rows[kt1].Cells[2].Value != null) { str2 = dataGridView1.Rows[kt1].Cells[2].Value.ToString(); while (str2.Substring(0, 1) == "0") { str2 = str2.Remove(0, 1); } dataGridView1.Rows[kt1].Cells[2].Value = str2; } } В итоге числа корректно будут отсортированы. |