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


conrol.Render(myWriter);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ну лучше-то конечно сделать что-то типа UpdatePanel и PartialRendering из атласа. Но в общем, и так сойдет.По всей Смоленщине нет кокаина — это временный кризис сырья
...
Рейтинг: 0 / 0
25.10.2006, 13:33
    #34080024
gaech
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить Render output от контрола?
Здравствуйте, 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
25.10.2006, 14:02
    #34080172
boriq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить Render output от контрола?
Здравствуйте, 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
25.10.2006, 14:45
    #34080380
Galant
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить Render output от контрола?
GollumА так не поступают, явно не самый удачный дизайн.
Нормальный дизайн.

А чтобы не ругалось нащщет того, что контрол должен быть вставлен в форму, то:
1. Рендерить контрол
2. Вместо TextBox использовать <input type=text> и т.д.
...
Рейтинг: 0 / 0
25.10.2006, 14:46
    #34080387
Andre
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить Render output от контрола?
Здравствуйте, 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
25.10.2006, 18:55
    #34081483
CyberRussia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить Render output от контрола?
Исходников нет под рукой, но я делал как-то так:

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


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