我需要能够在可编辑的网格中输入数据,动态列由查找表中的行数确定。这不是实际示例,但它是我正在尝试做的类似的简单案例:
public class Student {
public long ID {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
...
}
public class Assessment {
public long ID {get; set;}
...
}
public class AssessmentQuestion {
public long ID {get; set;}
public long AssessmentID {get; set;}
public int QuestionNo {get; set;}
public int PointValue {get; set;}
...
}
public class StudentAssessment {
public long ID {get; set;}
public long StudentID {get; set;}
public long AssessmentID {get; set;}
...
}
public class StudentAssessmentAnswer {
public long ID {get; set;}
public long StudentAssessmentID {get; set;}
public long AssessmentQuestionID {get; set;}
public int PointsAwarded {get; set;}
public string Comments {get; set;}
...
}
根据上述结构,学生可以参加给定的评估。我们可以将评估、评估问题、学生和学生评估数据的创建视为给定的。现在用户正在对评估进行评分,她想检查所有试卷并输入每个学生每个问题的得分。因此,为了最大程度地方便使用,评分者应该看到一个可编辑的网格,每行有一个学生姓名,每个问题都有列,他们可以在所有单元格中使用标签,为每个问题输入点和评论(如果有的话)。然后,在点击“保存”时,应填充 StudentAssessmentAnswer 表。当然,阅读应该使用外连接,因为即使学生评估和问题之间没有 StudentAssessmentAnswer 连接,我们仍然要输入分数。
那么,当列数取决于该 AssessmentID 的 AssessmentQuestion 表中的行数时,如何制作这样的网格?