如何在回发时将gridview内容复制到数据表

时间:2011-07-06 20:23:35

标签: asp.net gridview datatable

我的项目有一个GridView来显示一些信息。 GridView有一些OnRowDataBound处理来按摩数据。我想要做的是将生成的GridView复制到DataTable中,这样我就可以生成一个CSV文件。用户单击按钮时会生成CSV。因此,GridView在屏幕上并填充并发生PostBack。 GridView没有在PostBack上重新绑定。建议的方法是什么?这是我正在尝试的代码,但我最终得到了标题和空白行。调试确认row.Cells [i] .Text是空的,即使标题是正确的,并且与我的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 个答案:

答案 0 :(得分:1)

您需要使用绑定到GridView的数据对象,而不是gridview。绑定后,gridview中的数据没有挂钩。