Articles / Nouvelle technologies


En surfant sur DotNetKicks.com, je suis tombé sur plusieurs articles interessants, dont un sur l'UpdatePanel et le __doPostBack. Le problème que rencontrait l'auteur (en) était le suivant : Comment "updater" l'UpdatePanel "proprement" (sans l'aide de bouton apparent ou de timer etc.)? Plusieurs moyen s'offrait à lui :

  1. Il existe un extender qui permet ça.
  2. On peut placer un "hidden" bouton sur l'UpdatePanel et gérer son "click". (pas super)
  3. __doPostBack.

__doPostBack

__doPostBack est une fonction Javascript qui prend deux arguments :

  • eventTarged : correspond à l'id du control concerné par le post back.
  • eventArgument : contient des informations supplémentaires sur le control.

On remarque que l'utilisation de cette fonction ajoute automantiquement deux inputbox de type hidden dans notre page. Si vous voulez plus d'information sur cette fonction, aller voir sur ce site (en).

UpdatePanel et __doPostBack

Partons d'un exemple d'UpdatePanel simple :

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div id="Container">
   <asp:UpdatePanel runat="server" ID="UpdatePanel1" onload="UpdatePanel1_Load">
      <ContentTemplate>
         <asp:Label runat="server" ID="Label1" />
      </ContentTemplate>
   </asp:UpdatePanel>

</div>

Dans le label, nous allons afficher l'heure actuel (exemple basique... aucune originalité, je sais!) :

protected void UpdatePanel1_Load(object sender, EventArgs e){
    Label1.Text = "Update panel 1 " + DateTime.Now.ToString();

}

 Pour utiliser __doPostBack, il suffit que je l'ajoute dans l'évènement onClick de mon div :

<asp:ScriptManager ID="ScriptManager1" runat="server" />

<div id="Container" onclick="__doPostBack('UpdatePanel1', '');">

   <asp:UpdatePanel runat="server" ID="UpdatePanel1" onload="UpdatePanel1_Load">

      <ContentTemplate>

         <asp:Label runat="server" ID="Label1" />

      </ContentTemplate>

   </asp:UpdatePanel>

</div

Il ne reste plus qu'a exécuter votre page et voir le résultat. Il vous cliquer sur votre UpdatePanel, il se raffraichi bien car l'UpdatePanel arrive a "catcher" le __doPostBack. 

Si vous connaissez encore d'autres moyens... Dites le moi!  



Lire la suite...
Tags: ,
Catégorie : ASP.NET AJAX

Une question sur cet article? n'hésitez pas a me contacter par Live Messegner. Suis-je connecté?

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Par Loïc Bar le 19/07/2007 13:50:00

Permalink | Commentaires (0) | Post RSS |


Ajouter un commentaire



(Affichera votre icône Gravatar)  

  Country flag










Propulsé par BlogEngine.NET, modifé par Loïc Bar.