[英]How to get the datasource of a gridview
我正在使用帶有sqldatasource的gridview。 如何獲取代碼背后的數據源作為數據表?
使用System.Data.DataTable dt =(System.Data.DataTable)gview.DataSource; 如果要綁定數據表。
如果將DataSet綁定為System.Data.DataTable,甚至可以從DataSet中提取DataTable dt2 =(System.Data.DataTable)((System.Data.DataSet)gvValidDA.DataSource).Tables [0]; 您將需要根據需要檢查表或表名稱的索引。
快樂的編碼。
已編輯
使用SqlDataSource.Select方法並將其分配給數據視圖
DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
然后使用提取數據表
DataTable dt = (DataTable)dv.ToTable();
實際數據未存儲在Gridview屬性中,因為上述答案適用。
僅對Gridview.DataSource進行直接轉換是不夠的,因為在渲染gridview時實際上為NULL!
您必須直接從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;
}
並在需要使用Gridview呈現后的數據時,使用ViewState將其轉換回DataTable。
DataTable dt = (DataTable)ViewState["gv"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.