0

我正在使用 DevExpress 的 gridview 处理 MVC 项目。

我是 MVC 和 DevExpress 的新手。

在每种gridview的项目中:-我有一个模型可以访问数据库并返回数据列表-我有一个控制器,它将模型传递给相关视图。-我有一个显示和排序绑定模型的数据的网格视图。gridview 需要几个事件来正确显示未绑定列的数据,显示组合框过滤器行等......

我使用编码来定义gridview(我不知道我做的是对还是错,你能确认吗?)

就像是 :

GridViewSettings settings = new GridViewSettings();
settings.Name = "grid";
....
  //this event to strike the disabled objects in the grid
settings.HtmlRowPrepared = ((project.Models.theModel)Model).gridUsers_htmlRowPrepared;
.....
//And now i render the gridview and i bind it to the list of objects
     Html.DevExpress().GridView(settings). Bind(((project.Models.theModel)Model).getListOfObjects()).Render();

如您所见,目前,我的事件被放置在模型中。

MVC 的方式是将数据处理与视图分离。

我的模型存储了修复我的 gridviews 显示的方法:这听起来根本不是 MVC。

你如何管理你的活动?你把它们放在哪里?

请记住,在项目中,我只能从模型访问数据库的对象(这就是为什么我将事件放在模型中,以使其更容易)。

提前感谢您的回答... Gridview MVC 对我来说是一个挑战。

4

1 回答 1

0

如果我没有误会你,我添加了一个 GridView 示例,

@Html.DevExpress().GridView(
settings =>
{
    settings.Name = "gvFilterRow";
    settings.CallbackRouteValues = new { Controller = "GridView", Action = "FilterRowPartial" };
    settings.Width = Unit.Percentage(100);

    settings.Columns.Add("ProductName");
    settings.Columns.Add(column => {
        column.FieldName = "CategoryID";
        column.Caption = "Category";

        column.ColumnType = MVCxGridViewColumnType.ComboBox;
        var comboBoxProperties = column.PropertiesEdit as ComboBoxProperties;
        comboBoxProperties.DataSource = NorthwindDataProvider.GetCategories();
        comboBoxProperties.TextField = "CategoryName";
        comboBoxProperties.ValueField = "CategoryID";
        comboBoxProperties.ValueType = typeof(int);
        comboBoxProperties.DropDownStyle = DropDownStyle.DropDown;
    });


    settings.Columns.Add("QuantityPerUnit");
    settings.Columns.Add("UnitPrice").PropertiesEdit.DisplayFormatString = "c";
    settings.Columns.Add("ReorderLevel");
    settings.Columns.Add("Discontinued", MVCxGridViewColumnType.CheckBox);

    settings.Settings.ShowFilterRow = true;
    settings.Settings.ShowFilterRowMenu = true;
    settings.CommandColumn.Visible = true;
    settings.CommandColumn.ClearFilterButton.Visible = true;
}).Bind(Model).GetHtml()
于 2013-09-21T08:27:42.613 回答