Дано: ASP.Net страница с GridView, заполненным данными.
Задача: Перенести эти данные в переменную типа DataTable на C#
При работе с веб-проектом у компонента gridview нет явного преобразования в datatable. Если бы это был проект windows forms, то преобразование можно было бы сделать так:
Однако в ASP.Net проекте необходимо явно задать столбцы таблицы и вручную перенести данные из GridView в DataTable. В итоге получаем примерно следующий код (его можно вставить как непосредственно на странице, так и вынести в отдельный класс для всего проекта - во втором случае вместо "protected void" укажите "public static"):
Пример использования:
(с) Ella S
.
Задача: Перенести эти данные в переменную типа DataTable на C#
При работе с веб-проектом у компонента gridview нет явного преобразования в datatable. Если бы это был проект windows forms, то преобразование можно было бы сделать так:
BindingSource bsSource = (BindingSource) myGridView.DataSource; DataTable myDataTable = (DataTable) bsSource.DataSource;
Однако в ASP.Net проекте необходимо явно задать столбцы таблицы и вручную перенести данные из GridView в DataTable. В итоге получаем примерно следующий код (его можно вставить как непосредственно на странице, так и вынести в отдельный класс для всего проекта - во втором случае вместо "protected void" укажите "public static"):
protected void DataTable GridViewToDataTable(GridView gv) { //создание переменной DataTable DataTable dt = new DataTable("dtTable"); //Добавление колонок в DataTable переменную foreach (TableCell cell in gv.HeaderRow.Cells) { dt.Columns.Add(cell.Text); } //перебор всех строк в GridView и копирование данных в DataTable foreach (GridViewRow row in gv.Rows) { dt.Rows.Add(); for (int i = 0; i < row.Cells.Count; i++) { dt.Rows[row.RowIndex][i] = row.Cells[i].Text; } } return dt; }
Пример использования:
DataTable dtList = GridViewToDataTable(MyGridView); if (dtList.Rows.Count > 0) { string strSurname = dtList.Rows[0]["Фамилия"].ToString(); }
(с) Ella S
.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Комментариев нет :
Отправить комментарий