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 :
- Il existe un extender qui permet ça.
- On peut placer un "hidden" bouton sur l'UpdatePanel et gérer son "click". (pas super)
- __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:
ajax,
asp.net
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
Permalink |
Commentaires (0) |
Post RSS |