Asp.net mvc 4 在订单列表管理中显示产品名称

Asp.net mvc 4 在订单列表管理中显示产品名称,asp.net-mvc-4,telerik,nopcommerce,Asp.net Mvc 4,Telerik,Nopcommerce,我想修改管理订单列表视图,使其与当前购物车页面类似,即具有详细信息视图,如果打开订单的详细信息视图,它将显示订单中订购的项目 为了实现这一点,我在代码中做了以下更改,但它不起作用 @(Html.Telerik().Grid<OrderModel>() .Name("orders-grid") .ClientEvents(events => events

我想修改管理订单列表视图,使其与当前购物车页面类似,即具有详细信息视图,如果打开订单的详细信息视图,它将显示订单中订购的项目

为了实现这一点,我在代码中做了以下更改,但它不起作用

 @(Html.Telerik().Grid<OrderModel>()
                    .Name("orders-grid")
                    .ClientEvents(events => events
                        .OnDataBinding("onDataBinding")
                        .OnDataBound("onDataBound")
                        .OnComplete("onComplete"))
                    .Columns(columns =>
                    {
                        columns.Bound(x => x.Id)
                        .ClientTemplate("<input type='checkbox' name='checkedRecords'       
  value='<#= Id #>' class='checkboxGroups'/>")
                        .Title("<input id='mastercheckbox' type='checkbox'/>")
                        .Width(50)
                        .HtmlAttributes(new { style = "text-align:center" })
                        .HeaderHtmlAttributes(new { style = "text-align:center" });

                        columns.Bound(x => x.Id)
                            .Template(x => Html.ActionLink(x.CustomerEmail, "Details",  
    "Order", new { id = x.Id }, new { }))
                        .ClientTemplate("<a href=\"Edit/<#= Id #>\">" + 
    T("Admin.Common.View").Text + "</a>");

                        if (!Model.IsLoggedInAsVendor)
                        {
                            //a vendor does not see order details such statuses or 
  totals
                            columns.Bound(x => x.OrderStatus);
                        }
                        columns.Bound(x => x.PaymentStatus);
                        if (!Model.IsLoggedInAsVendor)
                        {
                            //a vendor does not see order details such statuses or 
  totals
                            columns.Bound(x => x.ShippingStatus);
                        }
                        columns.Bound(x => x.CustomerEmail);
                        columns.Bound(x => x.StoreName);

                        columns.Bound(x => x.CreatedOn);
                        if (!Model.IsLoggedInAsVendor)
                        {
                            //a vendor does not see order details such statuses or 

  totals
                            columns.Bound(x => x.OrderTotal)
                                   .FooterTemplate(
                                       string.Format("<div><strong>{0}:</strong></div>" 
    +
                                                     "<div>{1}: <span id=\"aggregator-
 profit-block\"></span></div>" +
                                                     "<div>{2}: <span id=\"aggregator-
 tax-block\"></span></div>" +
                                                     "<div>{3}: <span id=\"aggregator-
    total-block\"></span></div>",

  T("Admin.Orders.Report.Summary").Text,

 T("Admin.Orders.Report.Profit").Text,
                                                     T("Admin.Orders.Report.Tax").Text,

  T("Admin.Orders.Report.Total").Text));
                        }
                        columns.Bound(x => x.Id)
                            .Template(x => Html.ActionLink(T("Admin.Common.View").Text, 
  "Edit", new { id = x.Id }))
                            .ClientTemplate("<a href=\"Edit/<#= Id #>\">" + 
   T("Admin.Common.View").Text + "</a>")
                            .Width(50)
                            .Centered()
                            .Title(T("Admin.Common.View").Text);
                    })
                     .DetailView(details => details.ClientTemplate(
                        Html.Telerik().Grid<OrderModel.OrderProductVariantModel>()
                        .Name("cartitems-grid-<#= Order Id #>")
                        .Columns(columns =>
                        {
                            columns.Bound(sci => sci.FullProductName)
                            .Template(sci => Html.ActionLink(sci.FullProductName, 
    "Edit", "ProductVariant", new { id = sci.ProductVariantId }, new { }))
                            .ClientTemplate("<a href=\""+ 
      @Url.Content("~/Admin/ProductVariant/Edit/") + "<#= ProductVariantId #>\"><#= 
     FullProductName #></a>");
                            columns.Bound(sci => sci.Quantity).Width(100);
                            columns.Bound(sci => sci.UnitPriceInclTax).Width(100);
                            columns.Bound(sci => sci.SubTotalInclTax).Width(100);
                          //  columns.Bound(sci => sci.Store).Width(150);
                          //  columns.Bound(sci => sci.UpdatedOn).Width(100);
                        })
                        .DataBinding(dataBinding => dataBinding.Ajax()
                        .Select("GetOrderDetails", "Order", new
                            {
                                OrderId =
                                    "<#= OrderId #>"
                            }))
                        .ToHtmlString()
                    )
                    )
                    .Pageable(settings => 
     settings.PageSize(gridPageSize).Position(GridPagerPosition.Both))
                    .DataBinding(dataBinding => dataBinding.Ajax().Select("OrderList", 
      "Order"))
                    .EnableCustomBinding(true))
@(Html.Telerik().Grid())
.名称(“订单网格”)
.ClientEvents(事件=>事件
.OnDataBinding(“OnDataBinding”)
.OnDataBound(“OnDataBound”)
.OnComplete(“OnComplete”))
.列(列=>
{
columns.Bound(x=>x.Id)
.ClientTemplate(“”)
.标题(“”)
.宽度(50)
.HtmlAttributes(新的{style=“text align:center”})
.HeaderHtmlAttributes(新的{style=“text align:center”});
columns.Bound(x=>x.Id)
.Template(x=>Html.ActionLink(x.CustomerEmail,“详细信息”,
“顺序”,新的{id=x.id},新的{})
.ClientTemplate(“”);
如果(!Model.IsLoggedInAsVendor)
{
//供应商看不到订单详细信息,如状态或
总数
columns.Bound(x=>x.OrderStatus);
}
columns.Bound(x=>x.PaymentStatus);
如果(!Model.IsLoggedInAsVendor)
{
//供应商看不到订单详细信息,如状态或
总数
columns.Bound(x=>x.ShippingStatus);
}
columns.Bound(x=>x.CustomerEmail);
columns.Bound(x=>x.StoreName);
columns.Bound(x=>x.CreatedOn);
如果(!Model.IsLoggedInAsVendor)
{
//供应商看不到订单详细信息,如状态或
总数
columns.Bound(x=>x.OrderTotal)
.页脚模板(
string.Format(“{0}:”
+
"{1}: " +
"{2}: " +
"{3}: ",
T(“管理命令、报告、摘要”)。文本,
T(“管理订单、报表、利润”).Text,
T(“管理命令、报告、税务”).Text,
T(“管理命令.报告.总计”).Text);
}
columns.Bound(x=>x.Id)
.Template(x=>Html.ActionLink(T(“Admin.Common.View”).Text,
“编辑”,新的{id=x.id})
.ClientTemplate(“”)
.宽度(50)

.Title(T(“Admin.Common.View”).Text);
})
.DetailView(details=>details.ClientTemplate(
Html.Telerik().Grid()
.Name(“cartitems网格-”)
.列(列=>
{
columns.Bound(sci=>sci.FullProductName)
.Template(sci=>Html.ActionLink(sci.FullProductName、,
“编辑”,“产品变量”,新的{id=sci.ProductVariantId},新的{})
.ClientTemplate(“”);
列绑定(sci=>sci.Quantity).Width(100);
columns.Bound(sci=>sci.unitpriceinclultax).Width(100);
列绑定(sci=>sci小计)。宽度(100);
//columns.Bound(sci=>sci.Store).Width(150);
//columns.Bound(sci=>sci.updateOn).Width(100);
})
.DataBinding(DataBinding=>DataBinding.Ajax()
。选择(“GetOrderDetails”、“Order”,新建
{
医嘱ID=
""
}))
.ToHtmlString()
)
)
.Pageable(设置=>
设置.PageSize(gridPageSize).Position(GridPagerPosition.Both))
.DataBinding(DataBinding=>DataBinding.Ajax().Select(“OrderList”,
"命令")
.EnableCustomBinding(true))
我试图通过OrdersProductVariantModel从OrdersModel的部分类中获取数据以显示此数据

我修改了OrderController以包含以下方法

[GridAction(EnableCustomBinding = true)]
public ActionResult GetOrderDetails(int OrderId)
{
    if (!_permissionService.Authorize(StandardPermissionProvider.ManageCurrentCarts))
    return AccessDeniedView();

    //   var customer = _customerService.GetCustomerById(customerId);
    //  var cart = customer.ShoppingCartItems.Where(x => x.ShoppingCartType == ShoppingCartType.ShoppingCart).ToList();

    var order = _orderService.GetOrderById(OrderId);
    var orderDetails = order.OrderProductVariants.ToList();

    var gridModel = new GridModel<OrderModel.OrderProductVariantModel>()
    {
         //   Data = cart.Select(sci =>
            Data = orderDetails.Select(sci =>
            {
               // decimal taxRate;
               // var store = _storeService.GetStoreById(sci.StoreId);
                var sciModel = new OrderModel.OrderProductVariantModel()
                {
                    Id = sci.Id,
                  //  Store = store != null ? store.Name : "Unknown",
                    ProductVariantId = sci.ProductVariantId,
                    Quantity = sci.Quantity,
                    FullProductName = sci.ProductVariant.FullProductName,
                //    UnitPrice = _priceFormatter.FormatPrice(_taxService.GetProductPrice(sci.ProductVariant, _priceCalculationService.GetUnitPrice(sci, true), out taxRate)),
                //    Total = _priceFormatter.FormatPrice(_taxService.GetProductPrice(sci.ProductVariant, _priceCalculationService.GetSubTotal(sci, true), out taxRate)),
                   // UpdatedOn = _dateTimeHelper.ConvertToUserTime(sci.UpdatedOnUtc, DateTimeKind.Utc)
                };
                return sciModel;
            }),
           // Total = cart.Count
        };
        return new JsonResult
        {
            Data = gridModel
        };
    }
[GridAction(EnableCustomBinding=true)]
公共操作结果GetOrderDetails(int OrderId)
{
if(!\u permissionService.Authorize(StandardPermissionProvider.ManageCurrentCarts))
返回AccessDeniedView();
//var customer=\u customerService.getcustomerbyd(customerId);
//var cart=customer.ShoppingCartItems.Where(x=>x.ShoppingCartType==ShoppingCartType.ShoppingCart.ToList();
var order=\u orderService.GetOrderById(OrderId);
var orderDetails=order.OrderProductVariants.ToList();
var gridModel=new gridModel()
{
//数据=购物车。选择(sci=>
数据=订单详细信息。选择(sci=>
{
//十进制税率;
//var store=\u storeService.GetStoreById(sci.StoreId);
var sciModel=new OrderModel.OrderProductVariantModel()
{
Id=sci.Id,
//Store=Store!=null?Store.Name:“未知”,
ProductVariatid=sci.ProductVariatid,
数量=科学数量,
F