IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Ajax Discussion :

Problème : Transmissions d'informations coté client à Une ModalPopupExtender


Sujet :

ASP.NET Ajax

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 35
    Points
    35
    Par défaut Problème : Transmissions d'informations coté client à Une ModalPopupExtender
    Bonjour à tous,
    J'utilise en ce moment AjaxToolKit sur mon site ASP.NET.
    J'ai une page qui affiche dynamiquement les coordonnées de personnes (Nom, Prénom) sous forme de tableau (ligne1 : Nom1, Prénom1 ; ligne2 : Nom2, Prénom2) à partir d'une base de données. Ces données sont restituées grâce à un Repeater pour assurer l'affichage dynamique.

    Dans ce tableau j'ai décidé d'ajouter un lien à chaque ligne. Ce lien permettra d'afficher le détail sur la personne se situant sur cette ligne (ex: Si je clique sur le lien de la ligne1, je verrais le détail (Adresse, Date de naissance) de la personne Nom1 Prénom1 (Selon l'exemple précédent)).
    Cet affichage se fait via une ModalPopupExtender afin de tout afficher sur la même page.

    Mais il y a un problème : Etant donné que mon lien est situé dans un Repeater, il ne peut être un Control Server, donc l'affichage de cette ModalPopupExtender se fait (je pense) seulement à l'aide du javascript.
    L'affichage de la popup en elle même n'est pas le problème, c'est plutôt le contenu qui est plus compliqué...
    En effet, je n'arrive pas à trouver le moyen pour que le javascript puisse provoqué une recherche dans la base de données. (Etant donné que je suis coté client, je n'ai plus d'évènements dans le code behind...)

    Je ne sais pas si j'ai bien fait de posté ce problème ici (peut être que la section javaScript serait plus appropriée) car j'utilise très peu le javascript.
    Mais si vous avez une solution je vous écoute, d'ailleurs si on peut passer autre part que par le javascript je suis preneur .

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour Onizuka,

    Effectivement les ModalPopup dans une GridView ou un Repeater ce n'est pas la joie. Je vois deux solutions différentes.

    La première c'est de mettre un ItemTemplate pour inclue un ModalPopupExtender ainsi que le Panel associé dans chaque ligne. Ainsi, tu bind les données détaillées d'un user lors du bind de la ligne. L'avantage c'est que tu n'as pas à tripoter le Javascript ou les PostBacks asynchrones pour mettre à jour les données. L'inconvénient, c'est que tu es obligé de charger des contrôles en plus dans chaque ligne de ton Repeater. Donc le temps de génération de la page est plus long, mais elle a une taille plus importante.

    L'autre solution est d'utiliser un Extender ainsi que son Panel associé hors du Repeater. A ce moment là, il te faut utiliser un PostBack asynchrone pour indiquer quelles sont les données à charger. Un DoPostBack, ainsi qu'un UpdatePanel devrait te suffire.

    En espérant t'avoir aidé?.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    Merci Nicolas pour ta contribution .
    Je pense utilisé la deuxième solution que tu propose car comme tu l'as dit, la première est un peu lourde au niveau du nombre de contrôles chargés.
    J'avais déjà commencé à faire précédemment mon Update Panel avec sa ModalPopupExtender et son Panel associé. Il me suffit donc d'utiliser le PostBack en asynchrone et de faire un DoPostBack lors du click sur le lien si j'ai bien compris.

    Par contre je ne vois pas vraiment où placer le DoPostBack (j'avoue avoir fait quelques petites recherches mais pour mon cas précis je ne vois pas vraiment ).
    Voici le code de mon lien sur ma page aspx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="#" onclick="javascript:$find('MPEDetailContact').show()"><img alt="détail" src="images/icones/loupe.png" /></a>
    Merci encore !

    EDIT : Après plusieurs recherches, j'ai vu que l'utilisation du __doPostBack sert en fait à produire un évènement javaScript. Est il préderrable que j'utilise des input hidden pour transférer l'info ?
    (Je me suis fié à ce lien : http://www.xefteri.com/articles/show.cfm?id=18 )

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    Finalement le __dopostback pose des problèmes de sécurités...
    J'ai préféré opter pour mettre un inputhidden dans l'item template.
    Cet input hidden contiendra toutes les infos de la personne, comme çà, lorsque l'on cliquera sur le lien, on récupère par javascript les données insérées dans le inputhidden et on les restitue dans le modalpopupextender.

    Voilà.
    Merci de ton Aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/10/2012, 19h15
  2. Oracle Express 10.2.0.1.0 [Problème coté Client]
    Par seblo_scoqi dans le forum Connexions aux bases de données
    Réponses: 5
    Dernier message: 26/10/2006, 10h54
  3. Réponses: 0
    Dernier message: 15/06/2006, 07h41
  4. Probléme cache avec IE et XML/XSL coté client.
    Par rataflo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 06/08/2005, 19h06
  5. Le coût d'une création de BDD à un client?!
    Par thoc dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 15/02/2005, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo