jqGridで表示されているデータをCSVとかにエクスポートする方法(JSON編)
概要
- datatypeがjsonの場合です。
- $('#grid').jqGrid('getGridParam', 'postData')が検索(searchGrid)や更新(reloadGrid)時にサーバー(url)へ送信されるデータです。
目的
jqGridでmultipleSearch:trueのときに、複雑な条件を設定して、並べ替えなんかもしちゃっているときの絞り込んだデータだけをエクスポートしたい。
方法
$(function () { /** * ./export.php * * export.phpはjqGridによる検索等のパラメータを受け入れ、 * csvファイルを出力するものとする * ***/ var opt = {}; $('#list').jqGrid(opt); var $e = $(document.createElement('a')) .attr('href', '#') .text('エクスポート') .appendTo('body') .bind('click', function () { var $t = $('#list'); var pd = $t.jqGrid('getGridParam', 'postData'); pd = $.param(pd); $(this).attr('href', 'export.php?' + pd); }); });
ちなみに
そもそもjqGridに渡すurlのパラメータに_export=csvが含まれる場合はCSV出力するようにしておいて、
postdataに入れてリロードしちゃうのはどうだろう。ってだめか。
javascriptからPOSTした返り値でダウンロードダイアログを出す方法を探さねば。
$('#list').jqGrid('setGridParam', {'postData': { '_export' : 'csv' }}) .trigger('reloadGrid') .jqGrid('setGridParam', {'postData': { '_export' : null }});
最速の花粉症!?
寝て起きたらのどの上のほうがかぴかぴになっていて痛い。
花粉症だ!
と、思ったら風邪でした。なんという鼻かぜ。
皆様も急に寒くなったのでお気をつけあれ。