我在mvc项目中工作,我想生成一个gridview(html表)。标头应该从db绑定,数据也应该动态地从db绑定。 这是我的元数据或主表。
Id Name Label Value Emp_id
31 Adhar DocumentNumber 12345678 1
32 Adhar ExpiryDate 1/1/2015 1
33 Pan DocumentNumber 123456789 2
34 Pan ExpiryDate 1/1/2015 2
36 Pan IssueLoc India 2
我的桌子应该如下所示。如果输入参数emp_id为1,则表格应如下所示。这是HTML
<Table><tr><th>DocumentNumber</th><th>ExpiryDate</th><td>12345678 </td>1/1/2015<td></td></tr></table>
OR 这是简单的网页。
DocumentNumber ExpiryDate
12345678 1/1/2015
我在mvc4实体框架中工作。如何克服这个?任何人都可以给我一些解决它的想法。我匆匆走过去,一无所获。请给我一些想法。如果问题未清除,请告诉我
这是针对emp_id的2
DocumentNumber ExpiryDate IssueLoc
12345678 1/1/2015 India
关于以上数据,我需要以
的形式输出 Name DocumentNumber ExpiryDate
Adhar 12345678 1/1/2015
Name DocumentNumber ExpiryDate IssuedLoc
Pan 123456789 1/1/2015 India
是的,根据我的要求,您提供的答案几乎是正确的。我试着按自己的意愿制作桌子,但是我无法得到它。很抱歉打扰你
答案 0 :(得分:1)
您需要按Name
对数据进行分组,然后为每个组创建一个单独的表。为了简化这一过程,请添加另一个视图模型
public class GroupVM
{
public string Name { get; set; }
public IEnumerable<MyItem> Items { get; set; }
}
和控制器方法
public ActionResult Test()
{
var table = new List<MyItem> {
new MyItem { Label = "DocumentNumber", Value = "12345678", Emp_id = 1, Name = "First" },
new MyItem { Label = "ExpiryDate", Value = "1/1/2015", Emp_id = 1, Name = "First" },
new MyItem { Label = "IssueLoc", Value = "India", Emp_id = 1, Name = "First" },
new MyItem { Label = "DocumentNumber", Value = "SecondValue", Emp_id = 2, Name = "Second" },
new MyItem { Label = "ExpiryDate", Value = "SecondValue", Emp_id = 2, Name = "Second" },
};
var data = table.GroupBy(x => x.Name).Select(x => new GroupVM
{
Name = x.Key,
Items = x
});
return View(data);
}
然后在视图中
@model IEnumerable<GroupVM>
@foreach(var group in Model)
{
<table>
<thead>
<tr>
<th>Name</th>
@foreach(var item in group.Items)
{
<th>@item.Label</th>
}
</tr>
</thead>
<tbody>
<tr>
<td>@group.Name</td>
@foreach(var item in group.Items)
{
<td>@item.Value</td>
}
</tr>
</tbody>
</table>
}
答案 1 :(得分:0)