Как сделать пользовательский элемент управления частичными классами, знающими о средствах управления объявленный в базовом классе?

Мы должны сделать что-то специальное, чтобы иметь ASP.NET частичные классы, знающие о средствах управления, которые объявляются в базовых классах нашего пользовательского элемента управления? Частичные классы продолжают генерировать объявления для средств управления в базовом классе, которые означают, что средства управления в базовом классе являются скрытыми и являются пустыми.

5
задан Georg Fritzsche 24 June 2010 в 07:56
поделиться

1 ответ

Атрибут CodeFileBaseClass можно применить к объявлениям @Page или @Control, чтобы заставить среду выполнения ASP.NET знать о любых элементах управления, объявленных в вашем базовом классе.

MSDN описывает это следующим образом:

Указывает имя типа базового класса для страницы и связанного с ним класса. code-behind class.

Этот атрибут является необязательным, но когда он используется атрибут CodeFile также должен присутствовать. Используйте этот атрибут, когда вы хотите реализовать общий сценарий, где вы определяете общие поля (и опционально, связанные события) в базовом классе для ссылки на элементы управления объявленных на веб-странице. Из-за модели генерации кода ASP.NET, если вы определили поля в базовом классе без использования этого атрибута, при во время компиляции новые определения членов будут сгенерированы для элементов управления объявленных на веб-странице (в рамках отдельной частичной заглушки класса), и ваш желаемый сценарий не сработает. Но если вы используете CodeFileBaseClass атрибут, чтобы связать базовый класс со страницей, и вы сделаете свой частичный класс (его имя присваивается атрибут Inherits и его исходный файл ссылается на CodeFile атрибут CodeFile) наследуется от базового класса, тогда поля в базовом класса смогут ссылаться на элементы управления на странице после generation.

6
ответ дан 14 December 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: