Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 16
1

Сортировка DatagridView двумя значениями

13.05.2017, 11:06. Показов 2107. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть DatagridView заполненный значениями. В нём есть поле DataPosecheniya. Ещё есть 2 TextBox для сортировки в которые я ввожу дату. Каким образом можно реализовать сортировку DatagridView в диапазоне между 2-х значений?
Помогите пожалуйста!
Миниатюры
Сортировка DatagridView двумя значениями  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2017, 11:06
Ответы с готовыми решениями:

Сортировка столбца DataGridView по дате с NULL значениями
Добрый день Встал вопрос сортировать колонки с датой. Стандартный сортировщик DataGridView...

Работа со значениями в dataGridView
Доброго времени суток. Я заполняю вручную некоторые столбцы в dataGridView 1. Как мне сделать так,...

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

Найти ячейки со значениями в DataGridView
В DataGridView требуется найти все ячейки, заполненные значениями кроме верхних ячеек со значениями.

6
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
13.05.2017, 12:04 2
1. Убрать грид, заполеный значениями.
2. Добавить грид БЕЗ значений.
3. Добавить таблицу (DataTable), заполненную значениями.
4. Скормить датасорсу грида (или биндингу - смотря какая задача) эту таблицу
5. При каком-то событии (клавишу там нажали, дату поменяли - сами решаете) - сортируете ТАБЛИЦУ.
6. Обновляете грид.
При таком подходе можно сортировку таблицы поставить в таску, и она спокойно отработает в фоне (а представьте, что в таблице у вас на 10 строк, а пол ляма - и все, интерфейс заморозится при сортировке грида).
Профит.
1
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 16
13.05.2017, 12:25  [ТС] 3
hoolygan, Спасибо, но мне нужно имеено в промежутке между двумя датами сортировать
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
13.05.2017, 13:20 4
Лучший ответ Сообщение было отмечено venzorg как решение

Решение

Ну правильно, а я о чем же.
Вот, набросал на коленке
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DataTable dt = new DataTable();
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Position", typeof(int));
            dt.Columns.Add("Date", typeof(DateTime));
 
            dt.Rows.Add(new Object[] {"Vasya", 1, DateTime.Parse("2011-11-11")});
            dt.Rows.Add(new Object[] { "Petya", 2, DateTime.Parse("2012-11-11") });
            dt.Rows.Add(new Object[] { "Kolya", 3, DateTime.Parse("2013-11-11") });
            dt.Rows.Add(new Object[] { "Lena", 4, DateTime.Parse("2014-11-11") });
            dt.Rows.Add(new Object[] { "Sveta", 5, DateTime.Parse("2015-11-11") });
            dt.Rows.Add(new Object[] { "Sveta", 5, DateTime.Parse("2016-11-11") });
 
            dt = dt.AsEnumerable()
                .Where(t => t.Field<DateTime>("Date") > DateTime.Parse("2012-11-11")
                        && t.Field<DateTime>("Date") <= DateTime.Parse("2015-11-11"))
                .Select(t => t).CopyToDataTable();
Спокойно фильтруешь - и грид сам обновится по волшебству ))
И никаких работ внутри грида, грид вообще не должен в таких вещах участвовать. Он должен показать результат.
1
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 16
13.05.2017, 13:34  [ТС] 5
hoolygan, Спасибо, сейчас попробую

Добавлено через 4 минуты
hoolygan, Спасибо, всё работатет
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
13.05.2017, 13:57 6
Лучший ответ Сообщение было отмечено venzorg как решение

Решение

Ой, я вот написал - но тебе же другой функционал нужен - сначала фильтронуть - а потом назад поставить. Так что мою 13 строчку - не бери, а создавай новую табличку временную, а то потеряешь свои значения. Просто я пользуюсь отдельной компонентой для гридов от DevExpress - там немножко другие методы и свойства. И фильтр немного другой. Но для задач со стандартным функционалом WF - я бы игрался с табличками, а не с гридами, но создавая временную табличку на каждую фильтрацию, а основную подменял бы при обнулении фильтра.
1
0 / 0 / 0
Регистрация: 18.01.2017
Сообщений: 16
14.05.2017, 00:57  [ТС] 7
hoolygan, Благодаря твоему коду я понял и у себя сделал. Спасибо
0
14.05.2017, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2017, 00:57
Помогаю со студенческими работами здесь

Заполнение DataGridView рандомными значениями
Добрый вечер, у меня возникла проблема с решением одной задачи. Так вот, у меня есть элемент...

Переписать данные в dataGridView новыми значениями
Напомните плиз как сделать dataGridView пустым то есть при обновлении таблицы стереть все данные...

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

Как заполнить dataGridView заданными значениями?
Ребят, только не судите строго, пожалуйста...но проблема в следующем есть два вопроса: как...

Как заполнить поле textBox рандомными значениями из dataGridView?
Люди Такой вопрос как реализовать такую фишку. Есть Form 1 на ней textBox, на Form2 есть...

DataGridView Как заполнить целый столбец значениями 1231231 (например)
для заполнения отдельной ячейки я пишу так dataGridView1.Rows.Cells.Value = 123123123; а как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru