2

持っているもの&欲しいもの

私が言いたいことを説明するよりも、絵で視覚化する方が簡単だと思います。テーブルを写真の 2 番目のように見せる方法はありますか? 今、私は最初のものを持っていますが、私が抱えている問題は、私のテーブルが次のように動的に入力されることです:

@model IEnumerable<MyApp.Models.OrderDetail>
@foreach (var item in Model)
{
    <tr>

        <td align="center">
            @Html.DisplayFor(modelItem => item.OrderId)
        </td>

        <td>
         @Html.DisplayFor(modelItem => item.Order.Username)          
        </td>
        <td>
         @Html.DisplayFor(modelItem => item.Order.ClientID)          
        </td>

        <td>
         @Html.DisplayFor(modelItem => item.Order.SiteNumber)          
        </td>   

        <td>
           @{
            if (item.Pack == null)
            {
                   @Html.DisplayFor(modelItem => item.Product.Name) 
            }
            else
            {
                 <text>Pack</text>
                 @Html.DisplayFor(modelItem => item.Pack.Name)
            }
            }    
        </td>

        <td>
            @if (item.Pack == null)
            {
                @Html.DisplayFor(modelItem => item.UnitPrice)
            }
            else
            {
                @Html.DisplayFor(modelItem => item.UnitPricePack)
            }
        </td>

        <td align="center">
            @Html.DisplayFor(modelItem => item.Quantity)
        </td>

        <td>
            @Html.DisplayFor(modelItem => item.Order.Total)
        </td>

        <td>
            @Html.DisplayFor(modelItem => item.Order.OrderDate)
        </td>
    </tr>  
    .....

インターフェイス以外はインターネット上で何も見つかりませんでしたが、私のレベルでは少し複雑に思えます。使用する場合は、すべてのコードを変更する必要があります。アイデア ?私はすべてのアドバイスを受け入れます、あなたの助けに感謝します

ここに私のモデルがあります:

注文詳細

 public class OrderDetail
    {
        public int OrderDetailId { get; set; }
        public int OrderId { get; set; }
        public int ProductId { get; set; }
        public int PackId { get; set; }
        public int Quantity { get; set; }

        [Range(0.00, 100000.00)]
        public decimal UnitPrice { get; set; }

        [Range(0.00, 100000.00)]
        public decimal UnitPricePack { get; set; }


        public virtual Product Product { get; set; }
        public virtual Pack Pack { get; set; }
        public virtual Order Order { get; set; }

        public virtual List<Product> Products { get; set; }
        public virtual List<Pack> Packs { get; set; }
    }

製品

 public class Product
    {
        [ScaffoldColumn(false)]
        public int      ProductId   { get; set; }

        [DisplayName("Pack")]
        public int      PackId      { get; set; }

        [Required(ErrorMessage="blabla")]
        [StringLength(160)]
        [DisplayName("Nom")]
        public string   Name        { get; set; }

        [DisplayName("Description")]
        [StringLength(200)]
        public string   Description { get; set; }

        [Required(ErrorMessage="blabla")]
        [Range(0.00, 10000.00, ErrorMessage="blabla")]
        [DisplayName("Prix")]
        public decimal   Price       { get; set; }

        public virtual Pack     Pack  { get; set; }

        public virtual List<OrderDetail> OrderDetails { get; set; }
    }

そして私のパックモデル

 public class Pack
    {
        [ScaffoldColumn(false)]
        public int      PackId      { get; set; }

        [DisplayName("blabla")]
        public string   Name        { get; set; }

        [DisplayName("blabla")]
        public string   Description { get; set; }


        [Required(ErrorMessage="blabla")]
        [Range(0.00, 10000.00, ErrorMessage="blabla")]
        [DisplayName("Prix")]
        public decimal  Price { get; set; }

        public List<Product> Products { get; set; }
        public virtual List<OrderDetail> OrderDetails { get; set; }
    }
4

1 に答える 1

3

このようなViewModelがあると仮定します

public class OrderViewModel
{
  public int OrderID { set;get;}
  public string UserName { set;get;}
  public int UserID { set;get;}
  public List<OrderItem> Products { set;get;}
  public decimal OrderTotal { set;get;}
}

public class OrderItem
{
  public string ProductID { set;get;}
  public string ProductName { set;get;}
  public decimal UnitPrice { set;get;}
  public int Quantity { set;get;}
}

今あなたの視界に

@model List<OrderViewModel>
@foreach(var order in Model)
{
  <tr>
     <td>@order.OrderID</td>
     <td>@order.UserName</td>
     <td>
        <ul>
        @foreach(var item in order.Products)
        {
          <li>@item.ProductName</li> 
        }
        </ul>
     </td>
     <td>
        <ul>
        @foreach(var item in order.Products)
        {
          <li>@item.Quantity</li> 
        }
        </ul>
     </td>
     <td>
        <ul>
        @foreach(var item in order.Products)
        {
          <li>@item.UnitPrice</li> 
        }
        </ul>
     </td>
     <td> 
         @order.OrderTotal
     </td>
 </tr>    
}
于 2012-09-05T14:01:09.000 に答える