У меня есть DataTable, где столбцы генерируются программно во время выполнения. Затем я привязываю этот DataTable к GridView. Мне интересно, как я могу создать GridView для этого, и если это невозможно, то как я могу вывести DataTable в хорошо отформатированный HTML.Создание GridView с столбцами, сгенерированными во время выполнения
ответ
Для этой цели GridView имеет AutogenerateColums -property. Вы также могли бы генерировать столбцы на лету, например:
VB.NET
Dim tbl As New DataTable
tbl.Columns.Add("ID", GetType(Int32))
tbl.Columns.Add("Name", GetType(String))
tbl.Columns.Add("Birthday", GetType(Date))
Dim pers As DataRow = tbl.NewRow
pers("ID") = 1
pers("Name") = "Tim"
pers("Birthday") = New Date(1973, 6, 9)
использования AutoGenerateColumns
позволить сетки генерировать сам столбец:
Me.GridView1.AutoGenerateColumns = True
Me.GridView1.DataSource = tbl
Me.GridView1.DataBind()
или генерировать столбцы динамически
For Each col As DataColumn In tbl.Columns
Dim field As New BoundField
field.DataField = col.ColumnName
field.HeaderText = col.ColumnName
GridView1.Columns.Add(field)
Next
C#
foreach (DataColumn col in dt.Columns)
{
BoundField field = new BoundField();
field.DataField = col.ColumnName;
field.HeaderText = col.ColumnName;
GridView1.Columns.Add(field);
}
Вы должны просто установить DataTable в качестве источника данных gridview. GridView имеет свойство AutoGenerateColumns
. Перед выполнением привязки убедитесь, что он установлен на true
или предварительно создает столбцы вручную.
Просто потому, что другие ответы не охватывают это, вот как программно настроить GridView с настраиваемыми столбцами.
private GridView SetUpGrid()
{
GridView GView = new GridView();
GView .ColumnHeaderToolTip = "MyToolTip";
GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("Col1Name");
gvc1.Header = "Column One";
gvc1.Width = Double.NaN; // Auto-Size
GView .Columns.Add(gvc1);
GridViewColumn gvc2 = new GridViewColumn();
gvc2.DisplayMemberBinding = new Binding("Col2Name");
gvc2.Header = "Column Two";
gvc2.Width = Double.NaN;
GView .Columns.Add(gvc2);
GridViewColumn gvc3 = new GridViewColumn();
gvc3.DisplayMemberBinding = new Binding("Col3Name");
gvc3.Header = "Column Three";
gvc3.Width = Double.NaN;
GView .Columns.Add(gvc3);
GridViewColumn gvc4 = new GridViewColumn();
gvc4.DisplayMemberBinding = new Binding("Col4Name");
gvc4.Header = "Column Four";
gvc4.Width = Double.NaN;
GView .Columns.Add(gvc4);
return GView;
}
GridViewColumn не существует для веб-элементов управления. – Fandango68
- 1. GridView во время выполнения
- 2. создание столбца во время выполнения во время выполнения sql-запроса
- 3. Создание таблицы во время выполнения
- 4. Создание столбца во время выполнения
- 5. Создание объектов во время выполнения
- 6. Создание JComboBoxes во время выполнения
- 7. Создание DataGridView во время выполнения
- 8. Создание объектов во время выполнения
- 9. Создание объектов во время выполнения
- 10. Создание БД во время выполнения
- 11. GridView SelectCommand отсутствует ГДЕ во время выполнения
- 12. Добавление шаблона в GridView во время выполнения
- 13. Создание DataGrid в WPF во время выполнения
- 14. создание отзывчивого изображения Gridview с тремя столбцами
- 15. Создание таблиц во время выполнения vs Создание баз данных во время выполнения
- 16. Сортировка DataGrid с автоматически сгенерированными столбцами
- 17. Создание поддельных экземпляров во время выполнения
- 18. Создание окна WPF во время выполнения
- 19. создание записи DSN во время выполнения?
- 20. Динамическое создание функции во время выполнения
- 21. Создание компонентов во время выполнения - Delphi
- 22. Создание динамически названной функции во время выполнения
- 23. Создание dylib, связанного во время выполнения
- 24. Создание и объединение NinePatchDrawables во время выполнения
- 25. Создание объектов во время выполнения в Python
- 26. Создание/изменение шаблонов Метеора во время выполнения
- 27. Создание многомерного массива во время выполнения
- 28. Создание баз данных во время выполнения
- 29. Создание XmlRpcUrl интерфейса во время выполнения
- 30. Создание удаленных методов во время выполнения?
Что делать, если источник данных для новых столбцов поступает откуда-то, кроме основного источника данных GridView? Разве gridview не должен иметь только один источник данных перед DataBind? – Fandango68
@ Fernando68: извините, я не понимаю ваши требования. Может быть, лучше всего создать реальный вопрос и предоставить всю необходимую информацию. Тогда я могу попытаться ответить. Вы можете добавить ссылку на вопрос здесь, чтобы сообщить мне. –
http://stackoverflow.com/questions/35307156/gridview-how-to-add-columns-based-on-data-from-a-separate-data-source – Fandango68