我正在使用DevExpress的gridview开发一个MVC项目。
我是MVC和DevExpress的新手。
在每种gridview的项目中: - 我有一个模型,可以访问数据库并返回数据列表 - 我有一个控制器,它将模型传递给相关的视图。 - 我有一个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的方法是将数据流程与视图分开。
我的模型存储了修复网格视图显示的方法:根本不存在MVC。
您如何管理您的活动?你把它放在哪里?
请记住,在项目中,我只能从模型中访问数据库的对象(这就是为什么我将事件放在模型中,以便更容易)。
提前感谢您的答案... Gridview MVC对我来说是一个挑战。
答案 0 :(得分: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()