我尝试使用radgrid选项将数据导出到excel,它在单次导出时工作正常。但我试图导出每个循环,最后一个文件数据只导出。可以循环导出吗?
protected void btnexport_Click(object sender, EventArgs e)
{
string selectedimportfilesid = "";
IList<RadListBoxItem> collection = ListBoxFileNames.CheckedItems;
string selectedfilename = "";
DataTable dtselect = new DataTable();
foreach (RadListBoxItem item in collection)
{
Label filename = (Label)item.FindControl("lblfilename");
Label Importfileid = (Label)item.FindControl("lblimportfileid");
selectedfilename = filename.Text;
selectedimportfilesid = Importfileid.Text;
dtselect = selectedexportfilelist(selectedimportfilesid);
testgrid.DataSource = dtselect;
testgrid.DataBind();
testgrid.ExportSettings.IgnorePaging = true;
testgrid.ExportSettings.FileName = selectedfilename
testgrid.ExportSettings.OpenInNewWindow = true;
testgrid.ExportSettings.Excel.FileExtension = "xls";
testgrid.MasterTableView.ExportToExcel();
}
}
答案 0 :(得分:0)
我不认为这是可能的。 ExportToExcel()方法旨在将导出的内容发送给最终用户,因此它更改了Response对象(在那里写入文件并添加适当的标头)。因此,多次执行此操作只会更改响应流中的文件与最后一个文件。
可能你可以:
自行生成包含数据的文件,并存储它们(例如,在临时文件夹中:http://www.telerik.com/help/aspnet-ajax/export-infrastructure.html
压缩它们:http://www.telerik.com/help/aspnet-ajax/ziplibrary-overview.html
将它们发送给客户
删除临时文件
但我没有对此进行测试,也没有使用它,所以我不能说你的情况是否可行。