UpdatePanel & Javascript inline

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 !

A propos de l'auteur

 

Développeur depuis plus de 10 ans, j'ai commencé la programmation dès l'âge de 9 ans sur un PC 8088 !!

GW-Basic, Pascal, Turbo Pascal, Delphi ont fait mes bases... Puis Java , bien plus tard... Pour enfin avoir découvert le C#... Quel plaisir de développer avec ce langage des solutions ASP.NET... Le développement Web comme jamais je ne pouvais l'imaginer possible :)

Aujourd'hui titulaire du MCSD VS 6.0, MCAD .NET, et MCT ...

Sur ce blog, je souhaite partager des choses simples mais efficaces... Des problèmes de tous les jours que l'on peut rencontrer et qu'il est simple de régler :)

Mes certifications

Month List