Asp.net 如何在回发时将gridview内容复制到数据表
我的项目有一个GridView来显示一些信息。GridView有一些OnRowDataBound处理来处理数据。我要做的是将生成的GridView复制到一个DataTable中,以便生成一个CSV文件。当用户单击按钮时,将生成CSV。因此,GridView出现在屏幕上并填充,然后发生回发。回发时未重新绑定GridView。推荐的方法是什么?这是我目前正在尝试的代码,但我只是以标题和空行结束。调试确认row.Cells[i].文本为空,即使标题正确且包含的行数与我的GridView相同Asp.net 如何在回发时将gridview内容复制到数据表,asp.net,gridview,datatable,Asp.net,Gridview,Datatable,我的项目有一个GridView来显示一些信息。GridView有一些OnRowDataBound处理来处理数据。我要做的是将生成的GridView复制到一个DataTable中,以便生成一个CSV文件。当用户单击按钮时,将生成CSV。因此,GridView出现在屏幕上并填充,然后发生回发。回发时未重新绑定GridView。推荐的方法是什么?这是我目前正在尝试的代码,但我只是以标题和空行结束。调试确认row.Cells[i].文本为空,即使标题正确且包含的行数与我的GridView相同 DataT
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;
}
}
DataTable=newdatatable(“导出”);
foreach(myGV.Columns中的DataControlField列)
{
dataTable.Columns.Add(新的DataColumn{ColumnName=column.HeaderText});
}
foreach(myGV.Rows中的GridViewRow行)
{
DataRow DataRow=dataTable.NewRow();
对于(int i=0;i
您需要使用绑定到GridView的数据对象,而不是GridView。绑定后gridview中的数据没有挂钩。+1@William:附加说明:如果启用(或将启用)分页,DataTable的行将只包含当前可见的DataRows的PageSize编号。因此,建议您在将数据导出到CSV时再次从数据库加载数据。好的,谢谢。我的数据源(一个对象列表)有我不需要的额外字段,GridView OnDataBound事件会在某些时候操纵数据。如果我在回发时重新绑定GridView,我可以访问GridView中的某种内部数据表来制作电子表格吗?我想我的另一个选择是创建一个返回数据表的方法,然后将其用于我的电子表格和GridView。