Почему RenderControl вызывается, когда для свойства Control Visible установлено значение false?

Я поставил точку останова в моем переопределенном методе RenderControl и ударил точку останова, но в Visual Studio я вижу, что this.Visible false.

В документации для свойства Visible указано:

Если это свойство ложно, серверный элемент управления не отображается.

Это не обязательно означает, что метод RenderControl не вызывается, но это большой намек, который он не должен делать. Должен ли я выходить из метода вручную, если Visible - false? Является ли это документированным где угодно?

1 ответ

Accorging to msdn:

Перед рендерингом состояние просмотра сохраняется для страницы и всех элементов управления. Во время этапа рендеринга страница вызывает метод Render для каждого control, предоставляя текстовый сценарий, который записывает свой вывод в Объект OutputStream свойства Response.

И как вы можете видеть на диаграмме ниже, RenderControl является частью процесса Render:

Таким образом, он вызывает метод RenderControl независимо от значения Visible prop. Это ваша ответственность за вывод пустой строки или чего-либо, основанного на свойстве Visible.

licensed under cc by-sa 3.0 with attribution.