powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / как получить Render output от контрола?
10 сообщений из 10, страница 1 из 1
как получить Render output от контрола?
    #34079322
boriq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть у меня сервер-контрол. Как можно получить html, в котороый он рендерится?
Конечно на первый взгляд можно использовать


conrol.Render(myWriter);

Но на второй взгляд, этот метод выбрасывает эксепшн о том, что "твой контрол должен быть внутри формы с атрибутом runat="server""...

Вообще всё это нужно для того, чтобы по коллбэку получить рендер только этого контрола и подставить его в нужный div на страничке.
Как в таком случае поступают?
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34079750
Gollum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, boriq, Вы писали:

B>Но на второй взгляд, этот метод выбрасывает эксепшн о том, что "твой контрол должен быть внутри формы с атрибутом runat="server""...

Поместите его на форму, отрендерьте, и уберите обратно.

B>Вообще всё это нужно для того, чтобы по коллбэку получить рендер только этого контрола и подставить его в нужный div на страничке.
B>Как в таком случае поступают?

А так не поступают, явно не самый удачный дизайн. Зачем это понадобилось?Любая весть изначально благая, просто ты к этому еще не привык
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34079765
i-ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, boriq, Вы писали:

B>Есть у меня сервер-контрол. Как можно получить html, в котороый он рендерится?
B>Конечно на первый взгляд можно использовать

B>
B>conrol.Render(myWriter);
B>

B>Но на второй взгляд, этот метод выбрасывает эксепшн о том, что "твой контрол должен быть внутри формы с атрибутом runat="server""...

B>Вообще всё это нужно для того, чтобы по коллбэку получить рендер только этого контрола и подставить его в нужный div на страничке.
B>Как в таком случае поступают?

Добавляют его в форму перед рендерингом. Еще надо убедиться, что все его паренты и он сам видимы (Visible = True).
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34079872
boriq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Gollum, Вы писали:

B>>Вообще всё это нужно для того, чтобы по коллбэку получить рендер только этого контрола и подставить его в нужный div на страничке.
B>>Как в таком случае поступают?

G>А так не поступают, явно не самый удачный дизайн. Зачем это понадобилось?

А каков удачный дезайн? Если мне нужно GridView обновлять без перезагрузки страницы?
Я хочу делать xhttprequest на страницу, а она бы мне возвращала отрендеренный грид. Я б его подставлял в div и всё.
Или строить грид javascript'ом на основе возвращаемого xml — это самый удачный дезайн?
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34079959
Gollum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, boriq, Вы писали:

B>А каков удачный дезайн? Если мне нужно GridView обновлять без перезагрузки страницы?

Ну лучше-то конечно сделать что-то типа UpdatePanel и PartialRendering из атласа. Но в общем, и так сойдет.По всей Смоленщине нет кокаина — это временный кризис сырья
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34080024
gaech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, boriq, Вы писали:

B>Есть у меня сервер-контрол. Как можно получить html, в котороый он рендерится?
B>Конечно на первый взгляд можно использовать

B>
B>conrol.Render(myWriter);
B>

B>Но на второй взгляд, этот метод выбрасывает эксепшн о том, что "твой контрол должен быть внутри формы с атрибутом runat="server""...

B>Вообще всё это нужно для того, чтобы по коллбэку получить рендер только этого контрола и подставить его в нужный div на страничке.
B>Как в таком случае поступают?

Мне уже приходилось такое раньше делать.
Надо так


Control cntr = new TextBox();
HtmlTextWriter writer = new HtmlTextWriter(new StringWriter());
cntr.RenderControl(writer);
myDIV.InnerHtml = writer.InnerWriter.ToString();

Удачи!
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34080172
boriq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, gaech, Вы писали:

G>Мне уже приходилось такое раньше делать.
G>Надо так

G>
G>Control cntr = new TextBox();
G>HtmlTextWriter writer = new HtmlTextWriter(new StringWriter());
G>cntr.RenderControl(writer);
G>myDIV.InnerHtml = writer.InnerWriter.ToString();
G>

G>Удачи!

может с TextBox'ом это прокатит, но gridView.RenderControl(writer); выбрасывает эксепшн...
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34080380
Фотография Galant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GollumА так не поступают, явно не самый удачный дизайн.
Нормальный дизайн.

А чтобы не ругалось нащщет того, что контрол должен быть вставлен в форму, то:
1. Рендерить контрол
2. Вместо TextBox использовать <input type=text> и т.д.
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34080387
Andre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, boriq, Вы писали:

B>А каков удачный дезайн? Если мне нужно GridView обновлять без перезагрузки страницы?
B>Я хочу делать xhttprequest на страницу, а она бы мне возвращала отрендеренный грид. Я б его подставлял в div и всё.
B>Или строить грид javascript'ом на основе возвращаемого xml — это самый удачный дезайн?

Может тебе это подойдет: Tip/Trick: Cool UI Templating Technique to use with ASP.NET AJAX for non-UpdatePanel scenarios... << RSDN@Home 1.2.0 alpha rev. 655 :: silent >>
...
Рейтинг: 0 / 0
как получить Render output от контрола?
    #34081483
CyberRussia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исходников нет под рукой, но я делал как-то так:

Page p = new Page();
Render ren = new Render();
...
p.Controls.Add(ren);
ren.Render(myWriter);
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / как получить Render output от контрола?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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