【问题标题】:MvcContrib Grid shows error on sorting Northwind Order tableMvcContrib Grid 在排序 Northwind Order 表时显示错误
【发布时间】:2013-09-14 23:07:11
【问题描述】:

我正在学习 MVC 3,MvcContrib 网格,当尝试使用带有排序和分页选项的网格创建视图时,我遇到了错误。 “在 MvcApplication5.Models.Order 类型上找不到名为 'Customer.CompanyName' 的属性” 在这一行

orders = orders.OrderBy(sort.Column, sort.Direction);

请告诉我有什么问题,因为 Customer 表的代码工作正常,可能是它只有一个表,而 Order 表查询包括 3 个表?

控制器代码如下

public ActionResult Index(GridSortOptions sort, int? page)
{
    IEnumerable<Order> orders = db.Orders.Include(o => o.Customer).Include(o => o.Employee).Include(o => o.Shipper);

    if (sort.Column != null)
    {
        orders = orders.OrderBy(sort.Column, sort.Direction);
    }
    //orders = orders.AsPagination(page ?? 1, 25);

    ViewData["sort"] = sort;
    return View(orders);
} 

查看代码在这里

@model IEnumerable<MvcApplication5.Models.Order>
@using MvcContrib.UI.Grid;
@using MvcContrib.UI.Pager;

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>


@Html.Grid(Model).Sort((GridSortOptions)ViewData["sort"]).Columns(col => {
    col.For(o => o.Customer.CompanyName).Named("Customer").Sortable(true).SortColumnName("Customer.CompanyName");
    col.For(o => o.Employee.LastName).Named("Employee");
    col.For(o => o.OrderDate).Named("Order Date");
    col.For(o => o.RequiredDate).Named("Required Date");
    col.For(o => o.ShippedDate).Named("Shipped Date");
    col.For(o => o.Shipper.CompanyName).Named("Shipper");
    col.For(o => o.Freight).Named("Frieght");
    col.For(o => o.ShipName).Named("Ship Name");
    col.For(o => o.ShipAddress).Named("Ship Address");
    col.For(o => o.ShipCountry).Named("Ship Country");
    col.For(o => @Html.ActionLink("Edit", "Edit", new { id = o.OrderID }));
    col.For(o => @Html.ActionLink("Details", "Details", new { id = o.OrderID }));
    col.For(o => @Html.ActionLink("Delete", "Delete", new { id = o.OrderID }));    
})

【问题讨论】:

标签: asp.net-mvc-3 mvccontrib-grid


【解决方案1】:

好吧,我仍然没有看到我的问题的任何答案,但是在查看网络时,我发现这个链接在某种程度上很有用,甚至它不是我的问题的解决方案,但仍然可以使用。

ASP.NET MVC Paging/Sorting/Filtering using the MVCContrib Grid and Pager

在这里,他正在使用带有类别名称列的修改后的产品类别。因此,直接从表格中填充产品,从产品和类别名称中填充产品视图结构,然后在网格中显示其字段。因此,当用户点击不是产品表直接字段的类别名称时,可以使用这种方式进行排序和过滤。

但仍然需要知道我们是否可以使用此解决方案对引用列进行排序,就像我们对直接列所做的那样。

QF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多