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 Discussion :

Comment mettre à jour un Datasource d'un nested control.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Comment mettre à jour un Datasource d'un nested control.
    (Désolé pour le titre anglophone, j'arrivais pas à trouver d'équivalent francophone )

    Donc ce que j'ai ici en gros (très simplifié) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <asp:Repeater ID="repeater" OnItemDataBound="repeater_ItemDataBound">
    <ItemTemplate>
    <asp:DropDownList ID="la_liste" /> <asp:Button ID="le_bouton" OnClick="le_bouton_click" CommandArgument='<%# Eval("id") %>' />
    <asp:BulletedList ID="bullets" />
    </ItemTemplate>
    </asp:Repeater>
    Le but ici :

    Lorsqu'on clique sur le bouton, on lit la valeur sélectionnée dan "la_liste" et on ajoute l'item en question dans le datasource de "bullets".

    Jusqu'ici pas de problème ça fonctionne.

    Là où ça se corse, c'est que OnItemDataBound est lancé avant OnClick. Le problème occasionné c'est qu'il est impossible de modifier le Datasource de "bullets" dans OnClick, il n'y a aucun effet. Pour voir le changement il faut recharger la page. Ceci me semble vraiment improbable à enforcer. Surtout qu'il faut garder le ViewState.

    Une suggestion pour aider ?

  2. #2
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Bonjour,

    as-tu absoluement besoin du OnItemDataBound? Tu ne peux pas le gérer différemment ?
    Sinon si c'est un simple problème de rafraichissement tu epux mettre ton repeater dans un UpdatePanel propre à lui et ainsi recharger uniquement le repeater sur ton le_bouton_click() avecSinon essaie peut-être de mettre également une méthode sur le OnDataCommand et regarde quelle méthode est appelé en première, j'ai jamais fais ça mais c'est peut-être la solution.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je vois difficilement quel évènement mis à part OnItemDataBound qui me permettrait de mettre à jour le datasource du bulletedlist dans le asp:repeater. On m'a suggéré d'utiliser un datagrid, mais bon c'est un peu limité niveau design je trouve un peu :/

  4. #4
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Bon si je résume :

    Tu as une datasource qui a des infos qui vont etre peuplé lors du databoundItem: ce datasource sert ses données À un BulletedList .

    Ensuite un click arrive qui rajouter des données au datasource. Pourquoi ne pas à ce moment là faire un databind de ton bulettedList afin de faire apparaitre les modifications qui ont eut lieu dans ton datasource?

  5. #5
    Invité
    Invité(e)
    Par défaut
    C'est exactement ce que j'ai fait en fait. Il semble par contre que ce soit ignoré.

    En gros niveau évènements ça ressemble à ça:

    <Page Load>
    <OnItemDataBound>
    <La page est affichée>

    <Je clique sur le bouton machin>
    <OnItemDatabound -> Je charge le Datasource + DataBind>
    <OnClick -> Je charge le DS + DB mais aucun effet>

    Le pire c'est que j'ai déjà essayé avec un BulletedList.Items.Clear(); et un BulletedList.Items.Add() dans le OnClick, sans résultats.

  6. #6
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    et il n y a pas un databind qui suit cet evenement onclick par hasard? cela expliquerait pourquoi tes actions demeurent sasn effet apparent...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Nope, sauf dans OnItemDataBound lorsqu'il bind la ligne suivante.

    Ça serais plutôt pratique j'imagine la source, je vais uploader ça dans quelques instants.

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

Discussions similaires

  1. [ADO.NET][VB.NET]Comment mettre à jour BDD avec DataSet?
    Par fuhraih dans le forum Accès aux données
    Réponses: 1
    Dernier message: 17/01/2006, 16h35
  2. Comment mettre à jour le CD de Delphi 6 ?
    Par Hell dans le forum EDI
    Réponses: 1
    Dernier message: 01/08/2005, 16h39
  3. [Rave Report] Comment mettre à jour le produit
    Par Leesox dans le forum Rave
    Réponses: 2
    Dernier message: 11/04/2005, 21h00
  4. Comment mettre à jour un exécutable ?
    Par rvzip64 dans le forum Langage
    Réponses: 10
    Dernier message: 09/12/2004, 18h43
  5. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56

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