WebPart RenderControl не отображает содержимое
-
29-10-2019 - |
Вопрос
У меня есть настраиваемая веб-часть, для которой я пытаюсь вызвать метод RenderContents, но результаты содержат только окружающий div для веб-части, а не дочерние элементы управления.
Возьмем, к примеру, эту простую веб-часть:
общийЗатем в обработчике http я пытаюсь создать экземпляр этой веб-части и вызвать ее метод RenderControl.В результате получается кодовый код.
Кто-нибудь знает, почему я не получаю элементы управления из CreateChildControls, которые также добавляются к выходным данным?
Решение
Это потому, что когда вы только создаете экземпляр элемента управления и вызываете для него RenderControl, не добавляя его в коллекцию Controls, он не является частью жизненного цикла страницы, вызывающего срабатывание всех событий.
В частности, PreRendering, который вызывает EnsureChildControl, не вызывается.
Простое решение - переопределить Render следующим образом:
родовое словоДругие советы
Я бы посоветовал писать код в методе рендеринга, а не в элементе управления createchild