Si par exemple, je devais donner une réponse à une page de panneau de mise à jour d'ASP.Net, mais utiliser Response.Write et puis la terminer avant que quelque chose ait été rendu, quel est le minimum que j'aurais besoin d'écrire dans Response.Write ?Quelle est la quantité minimale de HTML qu'un UpdatePanel requiert avant de tomber?
Répondre
Si vous prenez le UpdatePanel suivant ...
<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>
... puis cliquez sur le bouton et afficher la réponse à Firebug, vous obtiendrez quelque chose comme ça (je l'ai tronqué ViewState et événement validation pour le rendre un peu plus lisible):
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|
Toutes ces données supplémentaires sont des choses que les ScriptManager
besoins de reconstruire le contenu du UpdatePanel: ids de contrôle, le nom de la page, viewstate, etc .. C'est ce que vous auriez Response.Write
manuellement pour le ScriptManager
pour être en mesure de faire son travail.
Pour plus de détails, voir "ScriptManager Enables AJAX In Your Web Apps". A la fin de la section intitulée « Mettre l'AJAX dans ASP.NET AJAX », l'auteur explique ce qui se passe:
Enfin, le cadre client obtient la réponse asynchrone du serveur et analyse des données. Le contrôle ScriptManager a emballé dans la réponse tous les ID de contrôle et de nouvelles balises afin le cadre client peut simplement effectuer des opérations de script sur le modèle objet de document de navigateur pour mise à jour le contenu de la page.