2013-06-14 3 views
1

У меня есть GridView, который получает данные, как например:Как добавить таблицу данных в GridView?

DataTable schedulesTable = Transporter.GetDataTableFromAPI(callingURL); 
gvSchedules.DataSource = schedulesTable; 
gvSchedules.DataBind(); 

После этого GridView есть данные, я хочу, чтобы добавить еще один DataTable к нему.

Проблема заключается в том, если я это сделать:

DataTable schedulesTable = Transporter.GetDataTableFromAPI(callingURL); <-- different URL, so new table 
gvSchedules.DataSource = schedulesTable; 
gvSchedules.DataBind(); 

Это перезагружает данные в сетке именно с этой таблицей. Он устраняет другой.

Как я могу добавить несколько таблиц в GridView?

+0

попробуйте сделать цикл, чтобы добавить новые строки, но из того, что я видел, вы используете две разные сетки, нет? – PiLHA

+0

На самом деле это всего лишь 1 сетка. i обновил вопрос –

+1

Затем вы можете добавить строку за строкой с помощью 'foreach (строка DataRow в таблице. Rows) {}' ИЛИ для объединения данных datatables 'dataTable1.Merge (dataTable2);' – PiLHA

ответ

1

В настоящее время данные, вероятно, хранятся в VIEWSTATE. Это очень дорого.

Итак, 1-й шаг - отслеживать таблицу на стороне сервера. И отключить viewstate для GridView. Andf, то вы можете объединить новую таблицу:

DataTable schedulesTable1 = GetTableFromSessionOrFromGridView(); // whatever is practical 
DataTable schedulesTable2 = Transporter.GetDataTableFromAPI(callingURL); // new table 
schedulesTable1.Merge(schedulesTable2); 
gvSchedules.DataSource = schedulesTable1; 
gvSchedules.DataBind(); 
1

Gridviews показывает только данные из 1 таблицы с 1 набором данных.

Вы можете либо добавить второй набор данных к первому, либо сделать usercontrol с помощью 2 gridviews и связать каждый со своим собственным datatable. или имеют вложенные gridviews, если данные из двух таблиц имеют отношение типа один ко многим.

Смежные вопросы