2010-01-06 65 views

回答

3

被修改

使用SqlDataSource.Select方法並將其分配給一個數據視圖

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

然後,使用

DataTable dt = (DataTable)dv.ToTable(); 
+0

我已經試過這個選項。但它返回null – Geeth 2010-01-06 12:09:32

+0

它返回null – Geeth 2010-01-06 12:13:45

+0

Ravia的解決方案低於工程 – RustyH 2014-01-09 14:42:49

4

使用System.Data.DataTable DT =提取數據表( System.Data.DataTable)gview.DataSource;如果你正在綁定一個DataTable。

如果您將DataSet綁定爲,您甚至可以從DataSet中提取DataTable。 ]。您將需要根據自己的喜好檢查表格或表格名稱的索引。

快樂編碼。

1

實際的數據沒有存儲在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; 
    } 

,並使用ViewState中把它放回一個DataTable,當你需要使用數據後在GridView已使...

DataTable dt = (DataTable)ViewState["gv"];