L’UpdatePanel utilisé de manière optimisée , donc avec AsyncPostBackTrigger ne fera pas de refresh sur le Javascript que vous pourriez ajouter… Sauf si vous utilisez un ScriptManager.RegisterXXX
Pas toujours pratique si par exemple vous mettez dans votre updatePanel un UserControl (ASCX) qui contient du Javascript directement dans l’ASCX (Inline Javascript)..
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MonControle.ascx.cs" Inherits="MonControle" %> [...] <script type="text/javascript"> function jeRafraichisDesInfos() { .... } </script>
On pourrait bien entendu convertir notre javascript et la balancer côté page sous jascente (code behind), mais ce n’est franchement pas pratique… Et pas convivial…
L’article http://weblogs.asp.net/infinitiesloop/archive/2007/09/17/inline-script-inside-an-asp-net-ajax-updatepanel.aspx répond à un besoin simple en vous proposant de créer un CustomControl tout simple réutilisable dans tous les cas et à l’avenir il vous suffira d’écrire :
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MonControle.ascx.cs" Inherits="MonControle" %> [...] <ucTools:InlineScript runat="server"> <script type="text/javascript"> function jeRafraichisDesInfos() { .... } </script> </ucTools:InlineScript>
et vous aurez enfin le plaisir de voir votre JavaScript interprété dans l’UpdatePanel 🙂
Excellente solution !
Auteur: Alain BELUT