0

我有一个 ASP.NET 应用程序,可以显示不同类型学生的成绩。一些学生有自定进度的课程,不包括迟到的处罚和测验,而另一些学生有标准的课堂课程。

因此,在显示学生的成绩时,我会确定该学生属于哪个类别,然后适当地呈现成绩。

现在我使用条件语句来执行此操作,但我考虑将每个案例制作成一个 ascx 文件(即一个带有用于自定进度的 gridView 的 ascx,一个带有用于教室的 gridView 的 ascx,每个案例都在我的数据中调用数据填充方法访问类)。

我可能需要在应用程序的其他地方重新使用此功能,以在不同页面上显示成绩,因此某种自定义控件似乎是必要的。

这种方法可行吗?

4

4 回答 4

0

Make sure you are adequately separating your calculation logic from the display. I would use a class to actually determine the grades (perhaps multiple classes with a nice inheritance tree) to actually do the match, and the just render appropriately in your user control.

If you have multiple classes (or some property for determining what type a particular isntance is) you could also then easily create a factory to instantiate user controls for you where you will get the correct user control type, based on the calculation passed.

于 2009-04-10T19:04:31.347 回答
0

这种方法对我来说听起来不错 - 控件旨在帮助您重用代码。我认为一组用户控件在这里可以正常工作。

于 2009-04-10T18:55:27.343 回答
0

这种方法绝对是可行的,而且如果你以后想修改 HTML 的显示方式(新样式等),它也很容易改变。我会说 ASCX 是一个很好的方法。

于 2009-04-10T18:56:57.730 回答
0

以下是我对您的应用的理解:

  1. 您有已注册课程的学生。
  2. 学生可以是标准的或自定进度的。
  3. 对于不同类型的学生,每门课程的评分方法是不同的。
  4. 您需要一种根据学生类型显示正确成绩的方法。

我认为您可以通过一个控件来显示成绩,但肯定会确保将您的逻辑分开。也许是这样的:

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...
   }

}
于 2009-04-10T19:52:23.587 回答