2012-09-05 2 views
2

What I have & what I would likeforeach 조건이있는 셀에 둘 이상의 항목을 표시 할 수 있습니까?

내가 원하는 것을 설명하는 것보다 그림으로 시각화하는 것이 더 쉽다고 생각합니다. 테이블을 그림의 두 번째처럼 보이게 할 방법이 있습니까? 지금 나는 처음했지만, 내가 가지고있는 문제는 내 표는이 같은 동적으로 채우는된다는 점이다 : 나는 인터페이스를 제외하고 그것에 대해 인터넷에서 아무 것도 발견

@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> 
    ..... 

, 그러나에 약간 복잡 보인다 내 레벨을 사용하면 모든 코드를 변경해야합니다. 아이디어 ? 나는 여기에

내 모델입니다 당신의 도움을 주셔서 감사합니다, 모든 조언을 :

OrderDetails의

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; } 
    } 

답변

3

가정 할 때 u는보기

@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>  
} 
+0

나는 몇 가지 시도에서 지금이

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;} } 

같은 뷰 모델을 가지고 있지만 항상 오류 CS1061 또는 CS1579 – Alternative

+0

오류가 무엇을? – Shyju

+0

현재로서는 다른 오류가 있습니다. 열 이름이 유효하지 않습니다 [노드 이름 (있는 경우) = Extent1, 열 이름 = Pack_PackId]. 첫 번째 foreach : @foreach (모델의 var 항목)입니다. – Alternative

관련 문제