0
我的項目有一個GridView來顯示一些信息。該GridView有一些OnRowDataBound處理來處理數據。我想要做的是將生成的GridView複製到DataTable中,以便生成CSV文件。當用戶點擊按鈕時會生成CSV。所以GridView在屏幕上並且填充併發生回發。 GridView不會在PostBack上重新綁定。推薦的方法是什麼?這裏是我目前正在嘗試的代碼,但我只是結束了標題和空白行。調試確認了row.Cells [i] .Text是空的,即使標題正確並且行數與我的GridView包含的行數相同。如何在gridback中將gridview內容複製到數據表中
DataTable dataTable = new DataTable("export");
foreach (DataControlField column in myGV.Columns)
{
dataTable.Columns.Add(new DataColumn { ColumnName = column.HeaderText });
}
foreach (GridViewRow row in myGV.Rows)
{
DataRow dataRow = dataTable.NewRow();
for (int i = 0; i < row.Cells.Count; i++)
{
dataRow[myGV.Columns[i].HeaderText] = row.Cells[i].Text;
}
}
+1 @William:附加說明:如果頁面啓用(或將要啓用),那麼DataTable的行將只包含當前可見的DataSize的PageSize數量。因此,推薦的方法是在想要將其導出到CSV時再次從數據庫加載數據。 –
好的,謝謝。我的數據源(對象列表)具有我不需要的額外字段,而GridView OnDataBound事件操縱數據。如果我在回發上重新綁定GridView,我可以訪問GridView中的某種內部DataTable以使我的電子表格從?我想我的另一種選擇是創建一個返回數據表的方法,然後將它用於我的電子表格和GridView。 – William