3

DevExpressGridViewMVC拡張機能のグリッド設定を構成するためにRazorビューで使用される次のコードがあります。コードはすべて問題ありませんが、グリッドからデータをエクスポートしたいと思います。これには、「サーバー」、つまりビューのアップストリームで同じ構成コードが必要です。プロパティへの必要なアクセスがない場合は、これを非常に簡単に実行して、ビューモデルにGridSettingsプロパティを提供できWebViewPage<TModel>.ViewContextます。

現在、私は本当に醜い回避策を使用してViewContextおり、ビューからコントローラーに戻しています。次に、コントローラーがグリッド設定を作成します。言うまでもなく、コントローラーのメソッドを呼び出すビューはかなり臭いです。

settings.Columns.Add(column =>
                        {
                            column.Caption = "#";
                            column.SetDataItemTemplateContent(c =>
                                                                    {
                                                                        ViewContext.Writer.Write(
                                                                            Html.ActionLink("Edit", "Edit", new {id = DataBinder.Eval(c.DataItem, "Id")}) + "&nbsp" +
                                                                            Html.ActionLink("Delete", "Delete", new {id = DataBinder.Eval(c.DataItem, "Id")},
                                                                                            new {onclick = "return confirm('Do you really want to delete this record? [Just say no!]')"})
                                                                            );
                                                                    });
                            column.SetHeaderTemplateContent(c => ViewContext.Writer.Write(Html.ActionLink("New", "Create")));
                            column.Settings.AllowDragDrop = DefaultBoolean.False;
                            column.Settings.AllowSort = DefaultBoolean.False;
                            column.Width = 70;
                        });
settings.Columns.Add("RefNum", "Emp. No.");
4

1 に答える 1

0

一般に、PartialView 側と Controller 側の両方で、エクスポートされた GridViewSettings オブジェクトの" Name"プロパティのみが必要です。

GridView の PartialView もフォームでラップする必要があります。

DX コード ライブラリとこのスレッドのこの例を参照してください。

(このデモのように) 静的オブジェクト内のコントローラー側で共有 GridViewSettings を指定することができます。

于 2012-06-25T17:15:14.803 に答える