Фактические данные не сохраняются в свойствах 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"];