3

我有以下代码在 Razor 视图中用于为 DevExpress GridView MVC 扩展配置网格设置。代码一切都很好,但现在我希望从网格中导出数据,这需要“服务器”上的相同配置代码,即视图的上游。我可以很容易地做到这一点,并在我的视图模型上提供一个 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 对象的“名称”属性。

GridView 的 PartialView 也应该用表单包裹起来。

请参阅DX 代码库和线程中的此示例。

可以在静态对象内的控制器端指定共享的 GridViewSettings(就像在这个演示中一样)。

于 2012-06-25T17:15:14.803 回答