如何以类似于表格的格式显示来自以下数据库实体的数据:
public class Attendance
{
public int AttendanceID { get; set; }
public int CourseID { get; set; }
public int StudentID { get; set; }
public int AttendanceDay { get; set; }
public bool Present { get; set; }
public virtual Course Course { get; set; }
public virtual Student Student { get; set; }
}
我想在出勤数据库条目中找到 CourseID == x; 的所有行 所以我会使用类似的东西:
AttendanceData = Attendance.Where(s => s.CourseID == x); // I think
然后我需要能够在我的视图中对这些信息进行排序,以便以一种有意义的方式显示它。我希望在屏幕上显示所有当前/不存在值的数据,这些数据在表格中排序,左侧列出了 StudentID,顶部列出了出勤日。
我将如何排序和显示这些信息?
更新:
使用以下代码(连同 Mvc WebGrid)——我可以让某种网格出现在我的视图中。
控制器:
IEnumerable<Attendance> model = db.Attendance.Where(s => s.CourseID == 4);
return View(model);
看法:
@model IEnumerable<MyProject.Models.Attendance>
<div>
@{
var grid = new WebGrid(Model, defaultSort: "Name");
}
@grid.GetHtml()
</div>
但是,网格的组织方式不适合我的需要。
我希望显示的表格顶部显示:
第一天 | 第 2 天 | 第 3 天 | 等等,直到“出勤日”的最大值(在创建学生注册的课程时决定)。
我希望显示表格的左侧显示: Student ID 1 Student ID 5 Student ID 6 Student ID etc 。. 直到数据集中的所有学生都被显示出来。
我想我需要在我的控制器中使用类似的东西:
var model = from s in db.Attendance
where s.CourseID == 4
group s.AttendanceDay by s.StudentID into t
select new
{
StudentID = t.Key,
Days = t.OrderBy(x => x)
};
return View(model);
但是我需要一个 IEnumerable<> 使用 Mvc WebGrid 返回到我的视图中——我正在到达某个地方,只是在此过程中仍然有点迷失。我可以向正确的方向轻推吗?