我有一个ASP.NET应用程序,可以显示不同类型学生的成绩。有些学生有自学课程,不包括晚期惩罚和测验,而其他学生则有标准的课堂课程。
因此,在显示学生成绩时,我会确定该学生属于哪个类别,然后适当地提供成绩。
现在我使用条件语句执行此操作,但我考虑将每个案例变成一个ascx文件(即一个ascx带有一个gridView用于自定进度,一个带有gridView for classroom,每个都调用数据填充方法在我的数据访问类中。)
我可能需要在应用程序的其他位置重复使用此功能,以在不同页面上显示成绩,因此某种自定义控件似乎是合理的。
这种方法可行吗?
答案 0 :(得分:0)
这种方法对我来说听起来不错 - 控件旨在帮助您重用代码。我认为一组UserControls在这里工作得很好。
答案 1 :(得分:0)
这种方法绝对可行,如果您想要稍后修改HTML的显示方式(新样式等),则可以轻松更改。我会说ASCX是一个很好的方法。
答案 2 :(得分:0)
确保将计算逻辑与显示屏分开。我会使用一个类来实际确定成绩(可能是多个具有良好继承树的类)来实际进行匹配,并且只需在用户控件中正确呈现。
如果你有多个类(或某些属性来确定特定的isntance是什么类型),那么你也可以轻松创建一个工厂来为你实例化用户控件,你将获得正确的用户控件类型,基于传递的计算
答案 3 :(得分:0)
以下是我了解您的应用的方式:
我认为你可以用一个控件来显示成绩,但肯定会确保你的逻辑分开。也许是这样的:
public class Student{
public GradingType Type {get;set;}
public List<Course> RegisteredCourses{get;set;}
//etc...
}
public class Course{
//etc...
}
public static class GradeCalculator{
public static CalculateStudentGrade(Student student, Course course){
//grade logic...
}
}