いくつかのバックボーン コレクションにあるデータを 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();
}
これは問題なく動作しますが、必要なデータを 2 回取得する必要があるため、少し効率が悪いようです。1 回はメイン ページ用、もう 1 回はエクスポート ページ用です。
少し長いショットですが、エクスポート ページのコード ビハインドから最初のページのデータを取得することは可能ですか? すべてがクライアント側である場合、window.opener.document を使用してオープナー ページを取得できます。asp.net で同様のことを行うことはできますか
それとも、私は完全に軌道から外れていますか?これを達成するためのはるかに良い方法があります.