- Сортировка данных в datagridview
- Практическое руководство. Настройка сортировки данных элемента управления DataGridView в Windows Forms
- Программная сортировка
- Пользовательская сортировка с помощью события SortCompare
- Пользовательская сортировка с помощью интерфейса IComparer
- Установка режимов сортировки для столбцов элемента управления DataGridView в Windows Forms
- Программная сортировка
- Пользовательская сортировка
- Сортировка DataGridView не работает
- 3 ответов
- Не работает сортировка datagridview
Сортировка данных в datagridview
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Сортировка данных в DataGridView
Как при экспорте данных из DataGridView провести сортировку.То есть при выгонке в.
Сортировка данных в таблице DataGridView, как настроить?
Здраствуйте уважаемые знатоки. Подозреваю что нельзя так сделать как я хочу но, все таки спрошу у.
Сортировка данных в DataGridView без изменения стиля в столбце
Здраствуйте! При поиске в DataGridView для данных которые были найдены по определенному критерию я.
Перенос данных с формы и одной ячейки dataGridView в другую форму и ячейку dataGridView
Подскажите пожалуйста, у меня есть две таблицы которые выводятся на разных формах в dataGridView.
Добавлено через 19 минут
вот, работает
DataGridView Сортировка
Привет, есть 2 стобца Name и Value. Исходные данные Value 1,2,3,4,5 Но отображатся как 1b 1a 23g.
Сортировка в DataGridView
Помогите пожалуйста) При выборе пункта «Отсортировать» строки таблицы сортируются по фамилии в.
DataGridView, сортировка
Помогите пжлст сделать сортировку. Таблицу сделал в SQL.
Сортировка в DataGridView
Как отсортировать строки в DataGridView, по 3 столбцу но чтобы сортировка шла вместе со строками.
Источник
Практическое руководство. Настройка сортировки данных элемента управления DataGridView в Windows Forms
Элемент управления DataGridView обеспечивает автоматическую сортировку, но в определенных ситуациях может потребоваться настроить операции сортировки. Например, с помощью программной сортировки можно создать альтернативный пользовательский интерфейс. Кроме того, можно обработать событие SortCompare или вызвать перегрузку Sort(IComparer) метода Sort для обеспечения большей гибкости сортировки, например для сортировки нескольких столбцов.
В приведенных ниже примерах кода демонстрируются эти три подхода к пользовательской сортировке. Дополнительные сведения см. в разделе Установка режимов сортировки для столбцов элемента управления DataGridView в Windows Forms.
Программная сортировка
В примере кода ниже демонстрируется программная сортировка с использованием свойств SortOrder и SortedColumn для определения направления сортировки и свойства SortGlyphDirection для ручной установки глифа сортировки. Перегрузка Sort(DataGridViewColumn,ListSortDirection) метода Sort используется для сортировки данных только в одном столбце.
Пользовательская сортировка с помощью события SortCompare
В примере кода ниже демонстрируется пользовательская сортировка с использованием обработчика событий SortCompare. Выбранный столбец DataGridViewColumn сортируется, а при обнаружении в нем повторяющихся значений столбец ID используется для определения конечного порядка.
Пользовательская сортировка с помощью интерфейса IComparer
В примере кода ниже демонстрируется пользовательская сортировка с помощью перегрузки Sort(IComparer) метода Sort, которая принимает реализацию интерфейса IComparer для выполнения сортировки по нескольким столбцам.
Источник
Установка режимов сортировки для столбцов элемента управления DataGridView в Windows Forms
DataGridView столбцы имеют три режима сортировки. Режим сортировки для каждого столбца задается с помощью SortMode Свойства столбца, для которого можно задать одно из следующих DataGridViewColumnSortMode значений перечисления.
Значение DataGridViewColumnSortMode | Описание |
---|---|
Automatic | По умолчанию для столбцов текстового поля. Если для выделения не используются заголовки столбцов, при щелчке заголовка столбца автоматически сортируется DataGridView по этому столбцу и отображается глиф, указывающий порядок сортировки. |
NotSortable | По умолчанию для столбцов, не являющихся текстовыми полей. Этот столбец можно отсортировать программно; Однако он не предназначен для сортировки, поэтому для глифа сортировки не резервируется место. |
Programmatic | Этот столбец можно отсортировать программно, и для глифа сортировки зарезервировано пространство. |
Может потребоваться изменить режим сортировки для столбца, который по умолчанию NotSortable имеет значение, если он содержит значения, которые могут быть осмысленно упорядочены. Например, если имеется столбец базы данных, содержащий числа, представляющие состояния элементов, эти числа можно отобразить в виде соответствующих значков путем привязки столбца Image к столбцу базы данных. Затем числовые значения ячейки можно изменить на отображаемые значения изображения в обработчике DataGridView.CellFormatting события. В этом случае, если задать SortMode для свойства значение, Automatic пользователи смогут сортировать столбец. Автоматическая сортировка позволяет пользователям группировать элементы, имеющие одинаковое состояние, даже если в состояниях, соответствующих числам, нет естественной последовательности. Столбцы флажков являются еще одним примером, где автоматическая сортировка полезна для группирования элементов в одном и том же состоянии.
Можно выполнить сортировку DataGridView программными средствами по значениям в любом столбце или в нескольких столбцах независимо от SortMode параметров. Программная сортировка полезна, если необходимо предоставить собственный пользовательский интерфейс для сортировки или реализовать пользовательскую сортировку. Предоставление собственного пользовательского интерфейса сортировки полезно, например, при установке DataGridView режима выделения для включения выбора заголовка столбца. В этом случае, несмотря на то, что заголовки столбцов нельзя использовать для сортировки, все равно требуется, чтобы в заголовках отображался соответствующий глиф сортировки, поэтому необходимо задать SortMode для свойства значение Programmatic .
Столбцы, для которых задан режим программной сортировки, не отображают глиф сортировки автоматически. Для этих столбцов необходимо самостоятельно отобразить глиф, задав DataGridViewColumnHeaderCell.SortGlyphDirection свойство. Это необходимо, если требуется гибкость при пользовательской сортировке. Например, при сортировке DataGridView по нескольким столбцам может потребоваться отобразить несколько глифов сортировки или без глифа сортировки.
Хотя можно программно сортировать DataGridView по любому столбцу, некоторые столбцы, например столбцы кнопок, могут не содержать значений, которые могут быть осмысленно упорядочены. Для этих столбцов SortMode параметр свойства NotSortable указывает, что он никогда не будет использоваться для сортировки, поэтому нет необходимости зарезервировать место в заголовке для глифа сортировки.
При DataGridView сортировке можно определить как столбец сортировки, так и порядок сортировки, проверив значения SortedColumn SortOrder свойств и. Эти значения не имеют смысла после пользовательской операции сортировки. Дополнительные сведения о пользовательской сортировке см. в разделе Настраиваемая сортировка далее в этом разделе.
При DataGridView сортировке элемента управления, содержащего как связанные, так и несвязанные столбцы, значения в непривязанных столбцах не могут поддерживаться автоматически. Чтобы сохранить эти значения, необходимо реализовать виртуальный режим, задав VirtualMode свойству значение true и обрабатывающее CellValueNeeded события и CellValuePushed . дополнительные сведения см. в разделе инструкции. реализация виртуального режима в элементе управления Windows Forms DataGridView. Сортировка по несвязанным столбцам в связанном режиме не поддерживается.
Программная сортировка
Можно выполнить сортировку DataGridView программным путем, вызвав его Sort метод.
Sort(DataGridViewColumn,ListSortDirection) Перегрузка Sort метода принимает в DataGridViewColumn ListSortDirection качестве параметров значение и перечисления. Эта перегрузка полезна при сортировке по столбцам со значениями, которые могут быть осмысленно упорядочены, но которые не нужно настраивать для автоматической сортировки. При вызове этой перегрузки и передаче столбца со SortMode значением свойства DataGridViewColumnSortMode.Automatic , SortedColumn SortOrder Свойства и задаются автоматически, а соответствующий глиф сортировки отображается в заголовке столбца.
Если DataGridView элемент управления привязан к внешнему источнику данных путем установки DataSource свойства, Sort(DataGridViewColumn,ListSortDirection) перегрузка метода не работает для непривязанных столбцов. Кроме того, если VirtualMode свойство равно true , можно вызвать эту перегрузку только для связанных столбцов. Чтобы определить, привязан ли столбец к данным, проверьте IsDataBound значение свойства. Сортировка непривязанных столбцов в связанном режиме не поддерживается.
Пользовательская сортировка
Можно настроить с DataGridView помощью Sort(IComparer) перегрузки Sort метода или путем обработки SortCompare события.
Sort(IComparer) Перегрузка метода принимает экземпляр класса, который реализует IComparer интерфейс в качестве параметра. Эта перегрузка полезна, если нужно предоставить настраиваемую сортировку. Например, если значения в столбце не имеют естественного порядка сортировки или если естественный порядок сортировки не подходит. В этом случае нельзя использовать автоматическую сортировку, но по-прежнему необходимо, чтобы пользователи могли сортировать, щелкая заголовки столбцов. Эту перегрузку можно вызвать в обработчике для ColumnHeaderMouseClick события, если заголовки столбцов не используются для выбора.
Sort(IComparer) Перегрузка метода работает, только если DataGridView элемент управления не привязан к внешнему источнику данных, а VirtualMode свойство имеет значение false . Чтобы настроить сортировку для столбцов, привязанных к внешнему источнику данных, необходимо использовать операции сортировки, предоставляемые источником данных. В виртуальном режиме необходимо предоставить собственные операции сортировки для несвязанных столбцов.
Чтобы использовать Sort(IComparer) перегрузку метода, необходимо создать собственный класс, реализующий IComparer интерфейс. Этот интерфейс требует, чтобы ваш класс реализовал IComparer.Compare метод, который DataGridView передает объекты в DataGridViewRow качестве входных данных при Sort(IComparer) вызове перегрузки метода. В этом случае можно вычислить правильный порядок строк на основе значений в любом столбце.
Sort(IComparer) Перегрузка метода не задает SortedColumn SortOrder Свойства и, поэтому необходимо всегда устанавливать DataGridViewColumnHeaderCell.SortGlyphDirection свойство для вывода глифа сортировки.
В качестве альтернативы Sort(IComparer) перегрузке метода можно предоставить пользовательскую сортировку, реализовав обработчик для SortCompare события. Это событие возникает, когда пользователи щелкают заголовки столбцов, настроенных для автоматической сортировки, или при вызове Sort(DataGridViewColumn,ListSortDirection) перегрузки Sort метода. Это событие возникает для каждой пары строк в элементе управления, что позволяет вычислить правильный порядок.
SortCompareСобытие не происходит, если DataSource свойство задано или если VirtualMode свойство имеет значение true .
Источник
Сортировка DataGridView не работает
Visual Studio 2010 VB.NET
У меня есть DataGridView.DataSource набор в коллекцию пользовательских объектов. Столбцы используют свойства только для чтения из настраиваемого объекта для отображения, это диалоговое окно предназначено только для отображения. Свойства все возвращают строковые объекты. Я установил все столбцы, кроме 2 из них, в sortmode automatic (те, которые не установлены, — это кнопка или флажок). Но он не сортируется. У меня есть googled вокруг, и большинство людей используют sql или источники привязки, но я использую нетривиальная коллекция глаг. Некоторые говорят, что я должен реализовать IComparable, но разве строка уже IComparable?
любая помощь будет оценили?
в запросе вот некоторые фрагменты кода.
этот метод определяет столбцы, в столбцы я оформил в дизайнер.
имена столбцов называются pSelected или pCustomer и соответствуют свойство с тем же именем, что и столбец определение связи с.
Это фрагмент пользовательского объекта, который находится в коллекции
данные вводятся в действие с помощью этого кода
3 ответов
Если я правильно помню, вы можете поместить источник привязки между вашей коллекцией и datagridview, и источник привязки предоставит кучу функций. Я думаю, что это позволяет вам сортировать. Это все просто с моей головы, так как я не могу проверить это прямо сейчас.
ключевым моментом здесь является то, что DataGridView не отвечает за сортировку; базовый источник данных (т. е.Источник данных источника данных).
вы можете реализовать что-то вроде этого SortableBindingList (для Windows.Формы) http://www.martinwilley.com/net/code/forms/sortablebindinglist.html
Если это исключительно для целей чтения, и вам не нужно, чтобы пользователь мог выполнять динамическую сортировку, я бы рекомендовал вам отсортировать коллекцию в коде до установки источника данных.
это может привести к сортировке по умолчанию. Если вам нужно реализовать динамическую сортировку, Я бы рекомендовал вам повторно использовать myCollection.Метод Sort (), например, создание новой панели, закрепленной над datagridview с кнопками для сортировки каждого столбца. Свяжите событие click в этих кнопках с вашим .Метод Sort () и добавьте параметр в метод, чтобы узнать, по какому столбцу сортировать.
это немного работы, но я думаю, вам больше повезет реализовать пользовательский сценарий сортировки, чем заставить ваши компоненты Microsoft сгибаться по вашей воле.
Источник
Не работает сортировка datagridview
Помогите пожалуйста, не работает автоматическая сортировка грида (при нажатии на столбец), в чём может быть проблема, на сколько я понял с msdn он по умолчанию и не нуждается в модификации.
Добавлено через 11 минут
P.S. вот так заполняю грид:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Сортировка пузырьком не работает при ручном вводе в DataGridView
Ребят помогите,задача такая пользователь вводит числа в datagridview размером 3 на 3 и по нажатию.
Не работает передача запроса в ReportViewer, хотя в DataGridView работает
Сам я не программист, но уж папа очень просил, сделал как мог и все работает, кроме передачи в.
DataGridView, сортировка
Помогите пжлст сделать сортировку. Таблицу сделал в SQL.
Добавлено через 55 секунд
Art, Там уже предусмотрена сортировка при нажатии на столбец datagridview
Добавлено через 10 часов 5 минут
Помогите пожалуйста решить проблему.
kolorotur, При открытии документа ошибка(FormatException)
Input string was not in a correct format.
в строке
первая строка заголовки
Добавлено через 29 минут
P.S. Сори за смайлы, не обратил внимания как они отобразились, данные начинаются с чисел
Даценд, Если верить msdn то он по умолчанию установлен в режим Automatic.
Вставил ваш код, всё так же.
Как я понял ошибка действительно в том, что подгружаю их как строки, а как загрузить как числа не могу даже представить.
Добавлено через 8 минут
kolorotur, не хочет работать с number в последней строчке, пишет: Use of unassigned local variable ‘number’
а если оставить как у вас numbers то пишет что она не объявлена.
Даценд, Стоит RowHeaderSelect
Добавлено через 9 минут
P.S. оно же сравнивает строки как ASCII т.е. их код, и из-за этого трёхзначное число меньше двухзначного (12,96 > 111,54)
Сортировка в DataGridView
Помогите пожалуйста) При выборе пункта «Отсортировать» строки таблицы сортируются по фамилии в.
DataGridView Сортировка
Привет, есть 2 стобца Name и Value. Исходные данные Value 1,2,3,4,5 Но отображатся как 1b 1a 23g.
Сортировка DataGridView
Добрый день. Возникли проблемы с пониманием сортировки DataGridView. Вычитал с msdn следующие.
Сортировка в DataGridView
Когда в DataGridView задан автоматический SortMode, то столбцы сортируются, при кликах на головную.
Источник