Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    View Cyril Durand's profile on LinkedIn

    hit counters

ScriptManager.RegisterDataItem - envoyer des données à travers un UpdatePanel

Je viens de découvrir la méthode ScriptManager.RegisterDataItem, cette méthode permet de transférer des données entre le serveur et le client lors d'un AsyncPostback. Pour ceux qui ne sont pas familier avec les asyncpostback, un asyncpostback reprend le mécanisme d'un postback classique sauf qu'il se fait via Ajax (XMLHttpRequest) et ne rafraichit que certaines parties de la page, ces zones sont définies via les UpdatePanels.

En plus d'envoyer le contenu HTML des UpdatePanels à rafraichir, la méthode RegisterDataItem permet de transférer les données que l'on souhaite. Cette méthode dispose de deux signatures, soit l'on envoie un simple string, soit on envoie un objet complexe sérialiser en JSON.

// permet de renvoyer un simple string associé au ClientID d'un contrôle ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString()); // permet d'envoyer des données au format JSON JavaScriptSerializer serializer = new JavaScriptSerializer(); Person p = new Person("Cyril", "Durand"); ScriptManager1.RegisterDataItem(Label2, serializer.Serialize(p), true);

Pour récupérer les données côtés clients, il faut s'abonner à l'événement pageLoading du pageRequestManager :

Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(function(sender, args){ var dataItems = args.get_dataItems(); var serverDate = dataItems['ClientID_Label1']; var person = dataItems['clientID_Label2']; });

Je trouve néanmoins dommage que la clé soit un objet de type Control et non un simple String, en effet, cela nécessite de connaitre le clientID du contrôle ce qui n'est pas toujours facile.

Posted: mercredi 23 avril 2008 18:21 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Attention : Arnaque IE7/MSN par .net is good... C# is better ;) le il y a 5 heures et 35 minutes

- Comme Mitsu :-) par Matthieu MEZIL le il y a 7 heures et 57 minutes

- [OpenDocument] Quelques détails sur l’implémentation dans Office 2007 par Julien Chable le il y a 11 heures et 10 minutes

- Page de démarrage CodeS-SourceS par Nix's Blog le 08-07-2008, 19:14

- SharePoint : Erreur pénible lors de la compilation de projet SharePoint - XmlSerializers.dll par Blog Technique de Romelard Fabrice le 08-07-2008, 18:43

- [MOSS Tip Of The Day] Comment connaître le mode de notre page de publication par Nicolas Humann le 08-07-2008, 18:14

- SETI@CodeS-SourceS par Nix's Blog le 08-07-2008, 16:49

- jQuery VS ASP.NET AJAX par Le blog technique de Loïc Bar le 08-07-2008, 15:29

- Lucas change de fonction chez Microsoft France par LucasR le 08-07-2008, 13:02

- Pixel par Blog Technique d'Audrey PETIT le 08-07-2008, 11:25