Как получить источник данных gridview - PullRequest
3 голосов
/ 06 января 2010

Я использую gridview с sqldatasource. Как вернуть источник данных в коде как объект данных?

Ответы [ 3 ]

4 голосов
/ 06 января 2010

Использовать System.Data.DataTable dt = (System.Data.DataTable) gview.DataSource; если вы связываете DataTable.

Вы даже можете извлечь DataTable из DataSet, если вы связываете DataSet как System.Data.DataTable dt2 = (System.Data.DataTable) ((System.Data.DataSet) gvValidDA.DataSource) .Tables [0]; вам придется проверить индекс вашей таблицы или имя таблицы, как вы предпочитаете.

Счастливого кодирования.

3 голосов
/ 06 января 2010

Отредактированный

Используйте SqlDataSource.Select Метод и назначьте его для просмотра данных

DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);

Затем извлеките данные, используя

DataTable dt =  (DataTable)dv.ToTable();
1 голос
/ 22 марта 2017

Фактические данные не сохраняются в свойствах Gridview, так как относятся к приведенным выше ответам.

Использование прямого приведения к Gridview.DataSource недостаточно, так как на самом деле NULL, когда визуализация gridview рендерилась!

Вы должны либо перезагрузить данные напрямую из источника данных SQL ...

        DataSourceSelectArguments dss = new DataSourceSelectArguments();
        DataView dvS = sdsADDorREMstudentData.Select(dss) as DataView;
        DataTable dtS = dvS.ToTable() as DataTable;
        if (dtS != null)
        {
          ... etc...
        }

Или вы можете использовать ViewState для сохранения данных до визуализации Gridview.

    DataView dvClasses = (DataView)sdsClasses.Select(DataSourceSelectArguments.Empty);

    gvStudents.DataSourceID = "sdsClasses";
    gvStudents.DataSource = null; // Null out the source, as we have a SourceID instead
    gvStudents.DataBind();

    //save the data in a viewstate for later use (to control adding and removing students, without doing a postback! See ADD & REM methods below)
    DataView dv = (DataView)dvClasses;
    DataTable dt = new DataTable();
    if (dv != null)
    {
        dt = dv.ToTable();
        ViewState["gv"] = dt;
    }

И используйте ViewState, чтобы превратить его обратно в DataTable, когда вам нужно использовать данные ПОСЛЕ отображения Gridview ...

DataTable dt = (DataTable)ViewState["gv"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...