Если, например, я должен был дать ответ обратно на страницу панели обновления ASP.Net, но использовать Response.Write, а затем завершить его до того, как что-либо было отображено, каков минимум, который мне нужно будет записать в Response.Write ?Какое минимальное количество HTML требуется UpdatePanel до того, как оно упадет?
ответ
Если взять следующий UpdatePanel ...
<asp:UpdatePanel runat="server" id="updatePanel" ChildrenAsTriggers="True">
<ContentTemplate>
<asp:TextBox runat="server" ID ="textbox1"/>
<asp:Button runat="server" ID="go" OnClick="OnGo" text="Go"/>
</ContentTemplate>
</asp:UpdatePanel>
... затем нажмите кнопку и посмотреть ответ в Firebug, вы получите что-то вроде этого (я усечен в ViewState и события проверка, чтобы сделать его немного более удобным для чтения):
265|updatePanel|updatePanel|
<input type="text" name="textbox1" value="content" id="input1" />
<input type="submit" name="go" value="Go" id="go" />|
52|hiddenField|__VIEWSTATE|/wXPZwUK...|
64|hiddenField|__EVENTVALIDATION|/wEWB...|
0|asyncPostBackControlIDs|||0|postBackControlIDs|||
12|updatePanelIDs||tupdatePanel|0|childUpdatePanelIDs|||
11|panelsToRefreshIDs||updatePanel|2|asyncPostBackTimeout||90|20|
formAction||Upagename.aspx|13|pageTitle||Untitled Page|
Все, что дополнительные данные вещи, что ScriptManager
потребности восстановить содержимое UpdatePanel: управление идентификаторами, название страницы, ViewState, и т.д .. Это то, что вам нужно будет Response.Write
вручную для ScriptManager
, чтобы иметь возможность выполнять свою работу.
Подробнее см. «ScriptManager Enables AJAX In Your Web Apps». В конце раздела под названием «Установка AJAX в ASP.NET AJAX», автор объясняет, что происходит:
Наконец, структура клиент получает асинхронный ответ от сервера и разбирает из данных. управления ScriptManager упаковал в ответ все идентификаторы управления и новая разметка так рамки клиент может просто выполнять операции сценариев на объектной модели документа в браузера, чтобы обновить содержимое страницы.