В прошлом я пробовал все виды вещей с наследованием и пользовательскими элементами управления, в том числе один ascx, наследуемый от другого ascx, и решил ретроспективно, что это не стоит хлопот, так как его обслуживание обычно немногоголовная боль.
Наличие двух элементов управления ascx, наследуемых от общего базового класса, работает хорошо, но я также обнаружил, что попытка обработать события в базовом классе становится затруднительной.В конце я просто вызвал методы в базовом классе из событий.Вы должны обрабатывать события в обоих элементах управления, но, по крайней мере, люди смогут следовать коду через 2 года.
Общий ascx будет потрясающим и возможным:
НО, хотя это умный обходной путь, так какEDI не поддерживает его напрямую, я подозреваю, что это добавит проблем с обслуживанием.
Я знаю, что это, вероятно, не тот ответ, который вы ищете, а наличие уродливого кода if(controlType == "Type1")
, хотя это кажетсяможет оказаться самым легким в обслуживании, потому что Visual Studio не поддерживает наследование пользовательских элементов управления.
Удачи, и если вы найдете элегантное решение, пожалуйста, дайте мне знать!