CToph
Messages postés2Date d'inscriptionvendredi 8 décembre 2006StatutMembreDernière intervention 2 avril 2008
-
1 avril 2008 à 15:46
CToph
Messages postés2Date d'inscriptionvendredi 8 décembre 2006StatutMembreDernière intervention 2 avril 2008
-
2 avril 2008 à 14:56
Bonjour,
Je cherche un moyen de réaliser une liaison d<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on">'</st1:personname>objet (collection ou objet unique) en ASP.NET / C# aussi simplement qu<st1:personname w:st="on">'</st1:personname>il est possible de le faire en Windows Forms.
Le binding bidirectionnel en WinForm sur un objet métier ou une collection d<st1:personname w:st="on">'</st1:personname>objets est simple d<st1:personname w:st="on">'</st1:personname>utilisation et ne demande aucun traitement de synchronisation suite aux modifications dans une DataGridView par exemple.
En ASP.NET 2.0, à ma connaissance, il n<st1:personname w:st="on">'</st1:personname>existe aucun mécanisme aussi simple !
Dans le cas d<st1:personname w:st="on">'</st1:personname>un control GridView par exemple, la classe ObjectDataSource offre un début de solution, mais il reste nécessaire de coder la synchronisation des propriétés des objets métiers pour chaque valeur modifiée, puisque les objets modifiés fournis grâce au Bind ne sont pas ceux initialement fournis au control. Je comprends que ce fonctionnement parait normal en Web, mais n<st1:personname w:st="on">'</st1:personname>existerait-il pas en 2.0 un mécanisme qui me libérerait de ce travail ?
Merci pour votre aide.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
A voir également:
Binding d'un objet ou collections d'objets (ASP.NET / C#)
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 1 avril 2008 à 18:53
Bonjour,
Il me semble que l'objectDatasource (ainsi que tous les XXXDataSource) permettent de faire ce que tu demandes (ou j'ai mal compris la question :p). En effet tu as une propriété UpdateMethod qui te permet de mettre à jour ton objet etc... bien sur il faut écrire le code correspondant à la méthode Update. T
Si tu veux pas écrire ce code, tu peux utiliser un sqldatasource, mais ca flingue toute la conception objet d'une application.
Les XXXDatasource parraissent interessant au premier abord, mais j'ai jamais réussit à les utiliser dans la vraie vie. Dans des cas simple de démos, c'est joli, c'est tout beau, mais dans des cas métier concrêts c'est très vite compliqué à gérer et c'est surtout indebuggable ... Bref si tu as un gridview qui ne fait que l'édition d'UNE table (pas de jointure & co) alors les XXXDataSource sont interessant, sinon je préfère passer par du binding "traditionnel"
CToph
Messages postés2Date d'inscriptionvendredi 8 décembre 2006StatutMembreDernière intervention 2 avril 2008 2 avril 2008 à 14:56
Merci pour ta réponse.
C'est bien au niveau de la méthode Update que mon problème se pose. Effectivement, je voudrais éviter d'écrire ce code de synchronisation entre l'objet retourné par "l'Update" et ma collection d'objets d'origine qui a servit à peupler le WebControl. Comme tu l'as compris, je garde l'état de mes objets métiers et ne désire pas travailler directement avec la base de données afin de préserver l'architecture entre autre. J'essaye de préserver un fonctionnement semblable à une application WinForm.
Qu'appelles-tu du binding "traditionnel". Veux-tu dire par là l'utilisation d'un Eval puis un binding "à la main" pour prendre en compte les modifications ?