Могу ли я создать абстрактный базовый класс UserControl, чтобы производный .ascx должен реализовывать определенные элементы управления? - PullRequest
0 голосов
/ 08 марта 2012

Моя ситуация такова, что у меня есть элемент управления, который реализован для обработки двух разных типов.Поэтому в некоторых из методов, которые у меня есть if(controlType == "Type1") ... else..., я хотел бы разделить это на два разных элемента управления с помощью базового класса для обработки общих операций обоих элементов управления.Оба элемента управления тоже будут иметь одинаковую разметку, поэтому я бы хотел обработать события элемента управления в базовом классе, но дизайнер, кажется, облажался для меня.Я почти чувствую, что универсальный .ascx был бы идеальным, но я не знаю, с чего начать.

1 Ответ

1 голос
/ 08 марта 2012

В прошлом я пробовал все виды вещей с наследованием и пользовательскими элементами управления, в том числе один ascx, наследуемый от другого ascx, и решил ретроспективно, что это не стоит хлопот, так как его обслуживание обычно немногоголовная боль.

Наличие двух элементов управления ascx, наследуемых от общего базового класса, работает хорошо, но я также обнаружил, что попытка обработать события в базовом классе становится затруднительной.В конце я просто вызвал методы в базовом классе из событий.Вы должны обрабатывать события в обоих элементах управления, но, по крайней мере, люди смогут следовать коду через 2 года.

Общий ascx будет потрясающим и возможным:

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

Я знаю, что это, вероятно, не тот ответ, который вы ищете, а наличие уродливого кода if(controlType == "Type1"), хотя это кажетсяможет оказаться самым легким в обслуживании, потому что Visual Studio не поддерживает наследование пользовательских элементов управления.

Удачи, и если вы найдете элегантное решение, пожалуйста, дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...