【发布时间】:2016-09-02 12:38:09
【问题描述】:
我已经创建了 linq 查询和视图模型,它们成功地从数据库中提取了这些数据。
我想以表格形式显示这些数据,例如
查看所需
var monthlyTotals = from t in db.InvoiceItems.AsEnumerable()
// where t.Invoice.LegalFile.IsClosed == false
group t by t.Invoice.LegalFile.Client into g
select new StatementSummaryVM
{
Client = g.Key,
GrandTotal = g.Sum(x => x.AmountInclVAT),
MonthlyTotals = from i in g
group i by new
{
month = i.ItemDate.Month,
year = i.ItemDate.Year
}
into d
select new MonthlyTotalsVM
{
Date = new DateTime(d.Key.year, d.Key.month,1),
Amount = d.Sum(s => s.AmountInclVAT)
}
};
return monthlyTotals;
}
我的视图模型
public class StatementSummaryVM
{
[Display(Name = "File No.")]
public int Id { get; set; }
public Client Client { get; set; }
public IEnumerable<MonthlyTotalsVM> MonthlyTotals { get; set; }
[Display(Name = "Grand Total")]
[DisplayFormat(DataFormatString = "{0:C}")]
public decimal GrandTotal { get; set; }
}
public class MonthlyTotalsVM
{
[DisplayFormat(DataFormatString = "{0:MMM-yyyy}")]
public DateTime Date { get; set; }
[DisplayFormat(DataFormatString = "{0:C}")]
public decimal Amount { get; set; }
}
我当前的查看代码
<table class="table">
<tr>
<th>File No.</th>
<th>Client</th>
<th>Grand Total</th>
@foreach (var item in Model)
{
<th></th>
foreach (var monthlyTotal in item.MonthlyTotals)
{
<th>@Html.DisplayFor(model => monthlyTotal.Date)</th>
}
}
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Client.Id</td>
<td>@item.Client.Name </td>
<td>@item.GrandTotal</td>
@foreach (var monthlyTotal in item.MonthlyTotals)
{
<td>@Html.DisplayFor(model => monthlyTotal.Date)</td>
<td>@monthlyTotal.Amount</td>
}
</tr>
}
</table>
渲染后的样子
当前渲染视图1:
我正在努力让它正确显示。
任何帮助将不胜感激。谢谢
【问题讨论】:
-
您需要做的第一件事是删除第二个
foreach块中的<td>@Html.DisplayFor(model => monthlyTotal.Date)</td> -
嗨,斯蒂芬。绝对地。我只是把它留在那里帮助我查看monthlyTotal 模型的日期,以便我可以尝试找出如何构建视图
-
那你想做什么?您展示了 2 张彼此完全没有关系的图像。如果最后一张图片是“真实”数据,那么您的表格应该是什么样的?
-
我需要的是在帖子的顶部。在“查看所需”下有一个报告应该是什么样子的 excel sn-p:即在适当的日期列中显示每月总计。
-
如果您展示真实数据应该是什么样子的实际图像,那么我们可以提供帮助。目前没有任何意义。第一张图的数据和第二张图的数据没有关系!
标签: asp.net-mvc razor linq-to-entities entity-framework-6