1

シンプルな DevExpress ASP.MVC GridView があり、グリッド内のデータの PDF エクスポートを作成したいと考えています。すべてのデータのエクスポートを作成する方法を考え出しましたが、グリッドに表示されるデータのみをエクスポートできるようにしたいと考えています。これにより、ユーザーはデータの並べ替えとフィルター処理を行い、そのデータのみをエクスポートに表示できます。

並べ替えとフィルタリングはすべてクライアント側で行われるようです。DevExpess のドキュメントを検索し、クライアント側のグリッド オブジェクトを調べましたが、必要な情報が見つかりません。また、グリッドのクライアント側イベントの処理も試みました。ここで成功したのは、ColumnSortingイベントを処理したことだけです。これを使用して、発生した各並べ替えを記録できますが、並べ替えの方向や、並べ替えがイベントで提供された列のみに適用されるのか、それとも複数列の並べ替えの一部としてその列に適用されるのかはわかりません。

私が残した唯一のオプションは、グリッドの外部にある追加のフォーム コントロールを使用して、並べ替えとフィルタリングを制御することです。私のクライアントは組み込みの並べ替えとフィルタリング機能に非常に熱心であるため、私は本当にこれを行いたくありません。

ユーザーが適用した現在の並べ替えとフィルタリングの設定を取得して、PDF を生成するコントローラー アクションに渡す方法を教えてください。

4

1 に答える 1

0

DevExpress サンプルの 1 つでいくつかのコードを見て、これを理解しました。

http://mvc.devexpress.com/GridView/Editing

グリッドの部分ビューのコードは次のとおりです。

settings.ClientLayout = (s, e) =>
{
    if(e.LayoutMode == ClientLayoutMode.Loading) {
        if(Session["GridState"] != null)
            e.LayoutData = (string)Session["GridState"];
    }
    else
        Session["GridState"] = e.LayoutData;
};

LayoutDataをセッション状態に保存することで、同じコードをGridViewSettings使用して、PDF エクスポートの生成に使用される に適用できます。LayoutDataこれで問題は解決しますが、次のような形式であるため解析する必要があるため、これが一般的にどの程度役立つかはわかりません。

page1|sort1|a0|filter[Title] Like '%Test%'|conditions1|1|3|visible9|t0|t1|t2|t3|t4|t5|t6|t7|t8|width9|e|e|e|e|e|e|e|e|e
于 2013-03-01T14:20:37.160 に答える