0

さまざまな種類の学生の成績を表示するASP.NETアプリケーションがあります。遅刻のペナルティやクイズを含まない自習型のコースを受講している生徒もいれば、標準のクラスルームコースを受講している生徒もいます。

そのため、生徒の成績を表示するときは、その生徒がどのカテゴリに該当するかを判断し、成績を適切にレンダリングします。

今は条件付きステートメントでこれを行っていますが、それぞれのケースをascxファイルにすることを考えました(つまり、セルフペース用のgridViewを備えた1つのascxと、教室用のgridViewを備えた1つのascxで、それぞれがデータ内のデータポピュレーションメソッドを呼び出しますアクセスクラス)。

異なるページに成績を表示するために、アプリの他の場所でこの機能を再利用する必要があるかもしれないので、ある種のカスタムコントロールが必要なようです。

このアプローチは実行可能ですか?

4

4 に答える 4

0

このアプローチは私には良いと思います-コントロールはコードを再利用するのに役立つように設計されています。ここでは、一連のUserControlsが問題なく機能すると思います。

于 2009-04-10T18:55:27.343 に答える
0

このアプローチは間違いなく実行可能であり、後でHTMLの表示方法を変更したい場合(新しいスタイルなど)に簡単に変更できます。ASCXは良いアプローチだと思います。

于 2009-04-10T18:56:57.730 に答える
0

計算ロジックを表示から適切に分離していることを確認してください。クラスを使用して実際にグレードを決定し(おそらく、適切な継承ツリーを持つ複数のクラス)、実際に一致させ、ユーザーコントロールで適切にレンダリングします。

複数のクラス (または特定のインスタンスが何であるかを決定するためのプロパティ) がある場合は、渡された計算に基づいて正しいユーザー コントロール タイプを取得するユーザー コントロールをインスタンス化するためのファクトリを簡単に作成することもできます。

于 2009-04-10T19:04:31.347 に答える
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 に答える