1

我正在尝试将某些 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 中做类似的事情吗

还是我完全偏离了轨道,有更好的方法来实现这一点。

4

1 回答 1

1

这仅在 iframe 和主窗口之间的协议和域匹配时才有效。所有代码都是javascript

iframe 到父级:

var pDoc = window.parent.document;
var pWin = window.parent.window;

文档到 iframe:

var cDoc = document.getElementById("exportIFrame").contentDocument;
var cWin = document.getElementById("exportIFrame").contentWindow;

在父级上调用脚本:

pWin.yourFunction("parameter");

在 iframe 中调用脚本:

cWin.yourFunction("parameter");
于 2013-05-21T00:25:35.847 回答