Radgrid Excel导出循环

时间:2015-05-25 07:15:20

标签: c# asp.net telerik

我尝试使用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();
            }
}

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的。 ExportToExcel()方法旨在将导出的内容发送给最终用户,因此它更改了Response对象(在那里写入文件并添加适当的标头)。因此,多次执行此操作只会更改响应流中的文件与最后一个文件。

可能你可以:

  1. 自行生成包含数据的文件,并存储它们(例如,在临时文件夹中:http://www.telerik.com/help/aspnet-ajax/export-infrastructure.html

  2. 压缩它们:http://www.telerik.com/help/aspnet-ajax/ziplibrary-overview.html

  3. 将它们发送给客户

  4. 删除临时文件

  5. 但我没有对此进行测试,也没有使用它,所以我不能说你的情况是否可行。