SQL Serverプル(通常は使用しますSqlDataReader
が、提案を受け付けています)からExcel / CSVファイルにデータをエクスポートし、Webアプリのユーザーにダウンロードとして取得してもらいたいと思います。
ダウンロードをクリックしてもリロード/ポストバックが発生しないように、このAJAXスタイルを実行したいと思います。
誰かが以前にこれをしたか、どのようにアイデアを持っていますか?
SQL Serverプル(通常は使用しますSqlDataReader
が、提案を受け付けています)からExcel / CSVファイルにデータをエクスポートし、Webアプリのユーザーにダウンロードとして取得してもらいたいと思います。
ダウンロードをクリックしてもリロード/ポストバックが発生しないように、このAJAXスタイルを実行したいと思います。
誰かが以前にこれをしたか、どのようにアイデアを持っていますか?
このメカニズムはうまくいくと思います。
クリックするとjavascript関数を呼び出すHTMLボタンがあります。
<input id="downloadbtn" type="button" value="Download" onclick="download();" />
関数は次のようになります。
var download = function() {
$.ajax({
url: "datamaker.aspx",
context: document.body
}).done(function(data) {
// parse response data, get file path
var filepath = ParseDataToGetFilePath(data);
// open the csv file path in a new window (which will begin download)
window.open(filepath, '_blank');
});
};
サーバーサイドでは、「datamaker.aspx」がSQL Serverに接続し、CSVファイルを作成する必要があります。CSVファイルの作成は、streamwriterを使用して他のファイルを作成し、フィールド間に「カンマ」を書き込むのと同じくらい簡単です。このページの最後に、応答xmlまたはjsonのいずれかでファイル名を出力します。
{ filepath: \path\datafile.csv }