Вопрос

У меня есть настраиваемая веб-часть, для которой я пытаюсь вызвать метод RenderContents, но результаты содержат только окружающий div для веб-части, а не дочерние элементы управления.

Возьмем, к примеру, эту простую веб-часть:

общий

Затем в обработчике http я пытаюсь создать экземпляр этой веб-части и вызвать ее метод RenderControl.В результате получается кодовый код.

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

Это было полезно?

Решение

Это потому, что когда вы только создаете экземпляр элемента управления и вызываете для него RenderControl, не добавляя его в коллекцию Controls, он не является частью жизненного цикла страницы, вызывающего срабатывание всех событий.

В частности, PreRendering, который вызывает EnsureChildControl, не вызывается.

Простое решение - переопределить Render следующим образом:

родовое слово

Другие советы

Я бы посоветовал писать код в методе рендеринга, а не в элементе управления createchild

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top