Какой метод повторного использования лучше в этом случае - ascx или другой - PullRequest
0 голосов
/ 10 апреля 2009

У меня есть приложение ASP.NET, которое показывает оценки для разных типов студентов. У некоторых студентов есть курс для самостоятельного обучения, который не включает в себя поздние штрафы и викторины, а у других есть стандартный курс в классе.

Итак, при отображении оценки учащегося я определяю, к какой категории относится этот ученик, а затем соответствующим образом отображаю оценку.

Сейчас я делаю это с помощью условных операторов, но я думал о том, чтобы превратить каждый случай в файл ascx (т. Е. Один ascx с gridView для самостоятельного изучения и один с gridView для classroom, каждый из которых вызывает методы заполнения данных в моем классе доступа к данным).

Мне может понадобиться повторно использовать эту функцию в другом месте приложения, чтобы показывать оценки на разных страницах, поэтому какой-то особый элемент управления кажется оправданным.

Возможен ли такой подход?

Ответы [ 4 ]

0 голосов
/ 10 апреля 2009

Вот как я понимаю ваше приложение:

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

}
0 голосов
/ 10 апреля 2009

Этот подход определенно осуществим, и его легко изменить, если вы хотите изменить способ отображения HTML позже (новые стили и т. Д.). Я бы сказал, ASCX - хороший подход.

0 голосов
/ 10 апреля 2009

Убедитесь, что вы правильно отделяете логику вычислений от дисплея. Я бы использовал класс, чтобы фактически определить оценки (возможно, несколько классов с хорошим деревом наследования), чтобы на самом деле выполнить сопоставление, и просто правильно отобразить в вашем пользовательском элементе управления.

Если у вас есть несколько классов (или какое-либо свойство для определения типа определенного экземпляра), вы также можете легко создать фабрику для создания пользовательских элементов управления, где вы получите правильный тип пользовательского элемента управления на основе пройденного вычисления. .

0 голосов
/ 10 апреля 2009

Этот подход звучит хорошо для меня - элементы управления разработаны, чтобы помочь вам повторно использовать код. Я думаю, что набор UserControls будет отлично работать здесь.

...