Управление сервером через Response.Write - PullRequest
1 голос
/ 28 ноября 2011

Я пытаюсь записать куски html на страницу .aspx из файла обработчика .ashx. В файле обработчика я пытаюсь записать тег сервера

<asp:updatepanel id="UpdatePanel6" childrenastriggers="True" updatemode="Always" runat="server">
<contenttemplate>
<ajaxtoolkit:rating id="Rating6" autopostback="True" emptystarcssclass="Empty" filledstarcssclass="Filled" waitingstarcssclass="Saved" starcssclass="ratingItem" cssclass="ratingStar" currentrating="2" maxrating="5" runat="server"> </ajaxtoolkit:rating>
</contenttemplate>
</asp:updatepanel>

Но это не отображается на соответствующей странице .aspx. Когда я проверяю это в firebug, я вижу там кусок кода, а не исполняемый фрагмент, который должен быть что-то вроде

 <div id="UpdatePanel11">
<div id="Rating11" class="ratingStar">
<input id="Rating11_RatingExtender_ClientState" type="hidden" value="2" name="Rating11_RatingExtender_ClientState">
<a id="Rating11_A" style="text-decoration:none" title="2" href="javascript:void(0)">
<span id="Rating11_Star_1" class="ratingItem Filled" style="float:left;">&nbsp;</span>
<span id="Rating11_Star_2" class="ratingItem Filled" style="float:left;">&nbsp;</span>
<span id="Rating11_Star_3" class="ratingItem Empty" style="float:left;">&nbsp;</span>
<span id="Rating11_Star_4" class="ratingItem Empty" style="float:left;">&nbsp;</span>
<span id="Rating11_Star_5" class="ratingItem Empty" style="float:left;">&nbsp;</span>
</a>
</div>

Может ли кто-нибудь помочь мне с указателями на то, что мне здесь не хватает? Спасибо !

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Вы не можете сделать это. Response.Write внедряет непосредственно в выходной поток, без какой-либо обработки. Страница .aspx генерирует свой вывод, создавая дерево элементов управления (состоящее из буквенной разметки и тегов элементов управления в файле .aspx) и, возможно, динамически добавляя дополнительные элементы управления в код. Затем узлы дерева оцениваются в порядке сверху вниз для генерации HTML-кода, который они отправляют обратно в браузер с помощью вызовов Response.Write.

В отличие от страницы .aspx, обработчик .ashx не работает с элементами управления - дерево элементов управления отсутствует. Вы несете ответственность за прочтение запроса и самостоятельное составление необработанного текста ответа.

Похоже, вы пытаетесь динамически создавать элементы управления; в этом случае используйте файл .aspx и добавьте элементы управления в дерево в файле codebehind.

0 голосов
/ 28 ноября 2011

как упоминал Карл, это будет немного сложно сделать. Если вам нужно просто создать динамический рейтинг, я бы предложил использовать page.Controls.Add и добавить к ним обработчики, чтобы они могли обрабатывать их, когда пользователь нажимает на них. Если вам нужна помощь, пожалуйста, сообщите нам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...