cs_rastali
Messages postés13Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention21 mars 2008
-
5 déc. 2007 à 16:17
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
9 déc. 2007 à 19:53
Bonjour,
alors j'ai un petit probleme avec mon appli web. Je travaille avec le framework 2.0 sous visual studio 2005.
J'ai un écran qui affiche un repeater avec des données récupérées de ma base oracle. Dans ce repeater j'affiche un tableau, et une des colonnes contient un textbox et deux boutons, l'un permettant d'incrémenter la valeur numérique afficher dans le textbox de 1, et l'autre permettant de décrémenter la valeur. Tout cela fonctionne parfaitement bien, mais a chaque click sur l'un des boutons, c'est toute la page qui se rafraichit, et c'a fait un peu mal aux yeux a force :D.
Je souhaitais donc que le click sur mon bouton ne me rafraichisse que mon text box. Pour cela je me suis tourné vers ajax et l'update panel qui me semblait etre une bonne solution, sauf qu'au sein de mon repeater, ca ne fonctionne pas!
1-Ma premiere question est donc toute simple, est-ce possible d'intégrer un update panel dans un repeater? Et si oui, avez vous un exemple? ou si non, existe-t-il un autre moyen de ne raffraichir que mon textbox?
Ensuite j'ai une autre question concernant ajax plus généralement.
2-Mon projet est un projet asp.net site web classic, est-ce que je peux en ajoutant les composants ajax utilisé du ajax dans mon code, ou dois-je forcement créer un projet asp.net ajax-enabled website ?
cs_rastali
Messages postés13Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention21 mars 2008 6 déc. 2007 à 11:25
Yo!
en fait j'ai trouvé la réponse moi même
Je placais mal l'updatePanel, j'ai fait l'erreur de vouloir le mettre autour du champs a mettre a jour alors qu'en fait il fallait le mettre autour du repeater.
Donc en gros il faut faire:
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 5 déc. 2007 à 19:48
Bonjour,
1. Oui, c'est possible ! Mais faut binder correctement ou utiliser le viewstate, comment bind tu ton repeater ? utilises tu le viewstate ? as tu un message d'erreur ? que se passe t'il actuellement ?
2. Un site web ASP.net Ajax Enabled n'est rien d'autre qu'un site web classique avec un web.config un poil modifié :-)
cs_rastali
Messages postés13Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention21 mars 2008 6 déc. 2007 à 10:23
salut, et merci de ta réponse ^^
alors pour la question 2, c'est bon j'ai réussi a adapter mon web.config en m'inspirant d'un web.config d'un projet ajax. J'arrive donc sur une page de test, et sans repeater, à mettre a jour uniquement mon textbox.
Par contre, avec le repeater j'ai un probleme, directement a la compilation :s .
cs_rastali
Messages postés13Date d'inscriptionjeudi 6 avril 2006StatutMembreDernière intervention21 mars 2008 6 déc. 2007 à 10:41
Ah et j'ai oublié les messages d'erreur, donc lors de la compilation j'ai ces erreurs:
Le type 'Page1' contient déjà une définition pour 'tbValeur'
Le type 'Page1' contient déjà une définition pour 'btnPlus'
Le type 'Page1' contient déjà une définition pour 'btnMoins'
Le type 'ASP.page1_aspx' définit déjà un membre appelé '__BuildControltbValeur' avec les mêmes types de paramètres
Le type 'ASP.page1_aspx' définit déjà un membre appelé '__DataBindingtbValeur' avec les mêmes types de paramètres
Le type 'ASP.page1_aspx' définit déjà un membre appelé '__BuildControlbtnPlus' avec les mêmes types de paramètres
Le type 'ASP.page1_aspx' définit déjà un membre appelé '__DataBindingbtnPlus' avec les mêmes types de paramètres
Le type 'ASP.page1_aspx' définit déjà un membre appelé '__BuildControlbtnMoins' avec les mêmes types de paramètres
Le type 'ASP.page1_aspx' définit déjà un membre appelé '__DataBindingbtnMoins' avec les mêmes types de paramètres
Et si je retire le alternatinItemTemplate, j'ai ces messages d'erreurs:
'System.Web.UI.Control' ne contient pas de définition pour 'DataItem'
'System.Web.UI.Control' ne contient pas de définition pour 'DataItem'
'System.Web.UI.Control' ne contient pas de définition pour 'DataItem'
correspondant aux lignes des elements contenus dans l'update panel, a savoir le textbox et les deux boutons.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 9 déc. 2007 à 19:53
Bonjour,
en mettant ton updatepanel autour de ton repeater, tu vas rafraichir tous le repeater et pas seulement un item. A mon avis le problème que tu as vient des id de tes controles, il semble que tu as des id dupliqués pour 2 textbox différentes.
J'ai déjà mis des updatepanels dans une itemtemplate de repeater et il n'y a pas de problème, il faut juste faire attention à bien reconstruire les items comme il faut si on le construit de facon peu orthodoxe ;-)