我有学生、课程、注册和出勤模型。每门课程都有不同的出勤天数,我需要能够编辑这些天的出勤率。
我使用以下模型:
public class Student
{
public int StudentID { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; } // To keep track of what classes in which the student is enrolled
}
public class Course
{
public int CourseID { get; set; }
public string Title { get; set; }
public int InstructorID { get; set; }
public virtual Instructor Instructor { get; set; }
public int AttendingDays { get; set; } // Total number of days for attendance
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
public class Enrollment
{
public int EnrollmentID { get; set; }
public int CourseID { get; set; }
public int StudentID { get; set; }
public virtual Course Course { get; set; }
public virtual Student Student { get; set; }
}
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; }
}
我将如何构建一个 ViewModel 来让我编辑出勤表,根据 Course 课程中的 AttendingDays int 适当地调整指定课程的出勤天数。
即,如果 X 班的 AttendingDays 值为 10,我需要 10 行出勤日期,我可以填写这些日期并为每个学生填写出席/缺席复选框 - 而 Y 班只有 3 个出席日期,等等。.
因此,出勤表中的示例行将显示为:ID 25:对于课程 X,第 3 天的学生 X 出席。ID26:对于课程 X,第 4 天的学生 X 缺席,等等。.
解决这个问题的最有效方法是什么?
更新:
现在我创建出勤数据库条目,其中学生被标记为 Present = false 一旦他们被添加到班级后,每个可能的出勤日。
既然我知道我将始终为每个学生创建适当的出勤天数,我的 ViewModel 将如何工作?
我需要生成一个页面,为课程中包含的每个学生显示一行(此信息包含在注册表中)。每个学生的行将包含每天出勤的复选框(因此屏幕上会出现一个复选框网格,左侧列出学生姓名,顶部显示出勤日期的数字)。
编辑:
这会是 jqGrid 有用的东西吗?