Много “столбец” DataGridView C#

У меня есть DataGridView, это связывается с DataSet. Это имеет столбцы DateCreated, Вес, DateUsed. Те три столбца не занимают много горизонтального места на DataGridView, который является почти полным экраном. Действительно ли возможно иметь те столбцы, переносятся назад к вершине, если представление достаточно широко для поддержки второй группы тех colums. Таким образом через заголовок это считало бы DateCreated, Вес, DateUsed, DateCreated, Вес, DateUsed. Затем, когда строка нажата, только 3 ячейки были бы выделены, не все шесть. Есть ли что-то, что может обеспечить эту функциональность?

5
задан Henk Holterman 5 April 2010 в 18:49
поделиться

3 ответа

Я не ничего подобного знаю из коробки.

Вы можете создать этот эффект самостоятельно. Вам нужно будет отделить фактические данные от представления данных. Вместо одного DataRow на строку сетки вам нужно объединить их вместе, чтобы отобразить несколько строк в одной строке.

Таким образом, ваш вспомогательный метод может делать следующее:

  • Сравните ширину DataGridView с количеством строк
  • Определите, сколько столбцов DataRows будет видно.
  • Создайте новую таблицу DataTable с дополнительными наборами столбцов для представления каждый столбец
    • Пример: DateCreated1, Weight1, DateUsed1, DateCreated2, Weight2, DateUsed2 и т. д.
  • Заполните DataTable исходным DataSet
  • Свяжите DataGridView с новым table

Некоторые соображения: могут ли пользователи сортировать данные? Если так, вам придется написать это самостоятельно.

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

2
ответ дан 15 December 2019 в 06:21
поделиться

Может быть, это пошловато, но просто поставьте два DGV рядом, отключите вертикальную полосу прокрутки левого DGV, свяжите каждый DGV с половиной данных и управляйте ими обоими с помощью полосы прокрутки правого DGV.

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

0
ответ дан 15 December 2019 в 06:21
поделиться

Довольно сложно понять, что именно вы имеете в виду, но я уверен, что это можно сделать с помощью некоторой функциональности JS, когда вы вычисляете ширину столбцов и ширину браузера / экрана и соответствующим образом настраиваете DataGridView. У вас может быть несколько проблем с установкой ширины ячеек "td", поэтому можно переключиться на поставщиков CSS и отобразить как div и span.

0
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: