Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Control / 5 сообщений из 5, страница 1 из 1
08.07.2004, 20:27
    #32596371
zed
zed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Control
Как в одном UserControl (мастер-контрол) использовать другой UserControl (чилд-контрол)?

Что нужно конкретно:
Нужно при генерации одного контролла в отведенное для этого места всавлять то, что генерит другой контрол.

Использую protected override void CreateChildControls()
получаю там ControlCollection из чилд-контроллов.

Потом при генерации мастер-контролла делаю:
protected HtmlTextWriter htw;
Controls .RenderControl(htw);

и в этом месте имею ошибку :
Object reference not set to an instance of an object.
в
protected override void Render(HtmlTextWriter output){}
в строке : output.Write(xx);


не знаю что не так!
Может в принципе что-то не так!

Спасибо.
...
Рейтинг: 0 / 0
09.07.2004, 10:32
    #32596748
Ustazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Control
htw замени на output из Render'а
...
Рейтинг: 0 / 0
09.07.2004, 16:08
    #32597805
zed
zed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Control
Ustazzhtw замени на output из Render'а

Если сделать так, то на выходе получим сгенеренный чилд-контрол, а за ним мастер-контрол, что не есть то, что нужно.

Нужно чтобы чилд-контрол был сгенерен внутри мастер-контрола, как например таблица(чилд-контрол) в ячейке теблицы(мастер-контрол).
...
Рейтинг: 0 / 0
09.07.2004, 16:28
    #32597870
Ustazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Control
Надо определиться какой контрол пишем. Если это composite control - переопределяем метод CreateChildControl, в котором строим дерево наших котролов, одни помещам в коллекцию Controls других и так далее.
Соответственно "отведенное для этого место" будет какой-то контрол со своей коллекций Controls. Туда и добавляем дочерний контрол и Render не переопределяем.

Если хотим переопределить рендер (generic custom control), выводим все вручную, например:

Код: plaintext
1.
2.
3.
4.
5.
protected override void Render(HtmlTextWriter output)
{
   output.Write("<table><tr><td>");
   child.RenderControl(output);
   output.Write("</td></tr></table>");
}
...
Рейтинг: 0 / 0
13.07.2004, 12:38
    #32601463
zed
zed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Control
Спасибо.
Разберусь.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Control / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]