カテゴリー
jqGrid

jqGrid のデータをCSV形式で出力する方法について再考

こちらにjqGridのデータをCSV出力するサンプルを作りました。

簡単に処理を説明すると、選択したデータを配列としてサーバーへポストして、サーバー上でCSVに変換してクライアントへ出力するだけなんですが、ちょっと問題があります。

jqGrid のセルをフォーマッター(formatter:function(){…}) でセルの値に応じて加工しているとその内容で渡してしまいます。具体的には、たとえば ID 列にリンクを付けるために、フォーマッターで cellvalue を ‘<a href=”xxxx”>id</a>’ というようにリンクつけているような場合、このフォーマッターで処理した値がサーバーにわたりCSV出力されます。

これに対処するため、DBの内容を表示している場合なら、jqGrid にレコードのID値を hidden 列かもしくは加工せず保持しておいて、サーバーへポストするデータとしてはレコードIDのみを渡し、サーバー側でそのレコードIDを使ってクエリしたデータをCSV出力すれば、jqGrid で選択したデータがCSV出力されることになり、こちらの方法の方が良いかなぁと思います。

少し時間がとれたらそちらのサンプルも作成してみます。

以上、備忘録です。