I have the following scenario:
public class Pedido
{
[Key]
public int Id { get; set; }
public virtual ICollection<ProdutosPedido> ProdutosPedidos { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
}
public class Produto
{
[Key]
public int Id { get; set; }
public string Descricao { get; set; }
public string Valor { get; set; }
public DateTime DataCadastro { get; set; }
public virtual ICollection<ProdutosPedido> ProdutosPedidos { get; set; }
}
public class ProdutosPedido
{
[Key]
public int ProdutosPedidoId { get; set; }
public int ProdutoId { get; set; }
public int PedidoId { get; set; }
public int Quantidade { get; set; }
public virtual Produto Produto { get; set; }
public virtual Pedido Pedido { get; set; }
public virtual Status Status { get; set; }
}
I can save the Order with the Products without any problem, but I want to make a master details table to show the Order with its Products.
Follow the Controller's code
public ActionResult TodosOsPedidos()
{
var pedidos = _db.ProdutosPedidos.Include("Pedido").Include("Produto").Where(x => x.Pedido.Id == 2);
return View(pedidos);
}
View Code:
<table class="table table-condensed table-hover table-striped table-responsive">
<thead>
<tr>
<th style="width: 85px">
Pedido Nº
</th>
<th style="text-align: left">
Solicitante
</th>
<th style="width: 120px">
Data do Pedido
</th>
<th style="width: 120px">
Atualizado Em
</th>
<th style="width: 65px"></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PedidoId)
</td>
<td style="text-align: left">
@Html.DisplayFor(modelItem => item.Pedido.Franqueado.NomeFantasia)
</td>
<td>
@Html.DisplayFor(modelItem => item.Pedido.CreateDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Pedido.UpdateDate)
</td>
<td>
<a href="@Url.Action("Edit", "Produtos", new { @id = item.PedidoId })" title="Editar" class="btn btn-xs btn-primary tool">
<span class="glyphicon glyphicon-edit"></span>
</a>
<a href="javascript:void(0)" rel="@item.PedidoId" title="Excluir" class="btn btn-xs btn-danger tool delete-produto">
<span class="glyphicon glyphicon-trash"></span>
</a>
</td>
</tr>
<tr>
<td style="width: 100%" colspan="5">
<h5>Produtos</h5>
<table class="table table-condensed table-hover table-striped table-responsive">
<thead>
<tr>
<th>Descrição</th>
<th>Quantidade</th>
<th>Valor Unitário</th>
<th>Valor Total</th>
<th>Status</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>@Html.DisplayFor(itemModel => item.Produto.Descricao)</td>
<td>@Html.DisplayFor(itemModel => item.Quantidade)</td>
<td>@Html.DisplayFor(itemModel => item.Produto.Valor)</td>
<td>@Html.DisplayFor(itemModel => item.Produto.Descricao)</td>
<td>@Html.DisplayFor(itemModel => item.Produto.Descricao)</td>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
}
</tbody>
</table>
I want to leave as the example below:
Nº Pedido Solicitante Data Criacao Data Atualizacao
1 Fornecedor 01 23/05/2014 27/05/2014
----------------------------------------------------------------------------------------------
Descrição Qntd Valor Uni Valor Total Status #
Produto 01 02 3,50 7,00 Em Proc editar
Nº Pedido Solicitante Data Criacao Data Atualizacao
2 Fornecedor 04 23/05/2014 27/05/2014
----------------------------------------------------------------------------------------------
Descrição Qntd Valor Uni Valor Total Status #
Produto 01 02 3,50 7,00 Em Proc editar
Produto 03 01 3,50 3,50 Em Proc editar
But requests are repeating, all two ID requests are listed with their products, not just 1 ID 2 Request and below related products.