我正在尝试将某些 Backbone 集合中的一些数据导出到 csv 文件。
到目前为止,我正在使用这样的 java 脚本打开一个新的导出页面
var href = [];
href.push('ExportAnalysis.aspx?');
href.push('ParamSet=' + this.document.analysisParameterSetView.selectedParamSet + '&');
href.push('Start=' + start
Date + '&');
href.push('Finish=' + endDate + '&');
frames["exportIFrame"].location.href = href.join('');
然后在 exportAalysis.aspx 后面的代码中,我从获取数据的查询字符串中获取变量,构建 csv 文件并像这样返回文件。
// Get the export parmaters from the query string
var paramSet = Request["ParamSet"];
var startUnix = int.Parse(Request["Start"]);
var finishUnix = int.Parse(Request["Finish"]);
var start = DateTime.Parse("1970-01-01").AddSeconds(startUnix);
var finish = DateTime.Parse("1970-01-01").AddSeconds(finishUnix);
// GET DATA using Parameters
var filename = "analysisExport";
var content = "1,2";
Response.Clear();
Response.ContentType = "application/x-unknown";
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
Response.Write(content);
Response.End();
}
这工作正常,但它似乎有点低效,因为我必须获得我需要的数据两次。一次用于主页,一次用于导出页面。
它有点长镜头但是是否可以从导出页面后面的代码中获取第一页的数据?如果都是客户端,我可以使用 window.opener.document 来获取打开页面,我可以在 asp.net 中做类似的事情吗
还是我完全偏离了轨道,有更好的方法来实现这一点。