2009-10-15 4 views

Répondre

1

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.

Questions connexes