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 :

[ListBox] Valeurs perdues lors d'un Page_Load


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Par défaut [ListBox] Valeurs perdues lors d'un Page_Load
    Bonjour,

    J'ai une page qui contient une Listbox (multi select), un bouton "Appliquer" et une Gridview (ASPx) avec un Paging ( divisé en plusieurs page ).

    Lorsque je clique pour accéder à une autre page de la gridview, et que je check les valeurs des index sélectionnés dans ma Listbox, seul le premier index à son booleen isSelected à true. Par exemple : si j'ai la valeur "Group 1" et "Groupe 5" selectionnées, pour le controle il y aura uniquement "Group1" de sélectionné. Alors que graphiquement les deux sont toujours sélectionnés

    Quelqu'un serait comment je peux y remédier ?

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    if(!IsPostBack) pour ne pas refaire le Databind lors d'un postback ...
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Par défaut
    Merci pour ta réponse car je ne connaissais pas ce booléen.

    J'ai essayé avec mais ça ne fonctionne toujours pas car en fait dans ma liste box il y a des groupes et ça trie ma GridView.

    Donc à chaque clique sur le bouton "Appliquer", j'ai besoin de refaire un DataBind.

    Si je ne fais pas de DataBind lorsque je change la page du GridView, il n'y a plus rien dedans.


    Si tout ça n'est pas clair voici un mon code en simplifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Page_Load ()
    {
        if (!IsPostBack)
        {
             LoadGridView();
             InitGroups(); //Remplis ma Listbox
        }
    }
     
    LoadGridView()
    {
        List<Groups> groups = getListSelectedGroups(); // Dans cette méthode il ne trouve que le premiere élèment sélectionnés
        gv_HistoryOrder.DataSource = Config.OrderBook.getDataTale(groups); // groups est l'ensemble des groupes sélectionnés dans ma Listbox
        gv_HistoryOrder.DataBind();
     
    }
     
    OnBtClik()
    {
        LoadGridView();
    }

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Je n'arrive pas trop à comprendre ton problème je t'ai fais un petit exemple qui fonctionne à toi de t'en inspirer ...

    Voici la Page_Load :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack){
            List<String> lalal = new List<string>();
     
     
                lalal.Add("tootttt");
                lalal.Add("xxxxtttt");
                lalal.Add("wwwtttt");
                lalal.Add("zzzztttt");
                lalal.Add("aaaattt");
     
                lTest.DataSource = lalal;
                lTest.DataBind();
            }
        }

    Voici le bouton qui renvoie dans un label, les éléments sélectionnés

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void bTesteur_Click(object sender, EventArgs e)
        {
            string s = null;
            for (int i = 0; i <= lTest.Items.Count - 1; i++)
            {
                if (lTest.Items[i].Selected)
                {
                    s += lTest.Items[i].Value.ToString() +" | ";
                }
            }
     
            lLabel.Text = s;
        }

    Et voici le code aspx de cette partie :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:ListBox runat="server" ID="lTest" SelectionMode="Multiple" />
     
            <asp:Button runat="server" ID="bTesteur" OnClick="bTesteur_Click" />
     
            <asp:Label runat="server" ID="lLabel" Text="" />
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Par défaut
    J'ai testé et j'obtiens la même chose dans mon code lorsque je clique sur mon boutton.

    Mais lorsque je clique sur une page différente de ma GridView ( en mode AllowPaging), alors ce ne vas pas il affiche uniquement le premier élément sélectionnés.

    Le mode Paging c'est ce qui permet d'avoir une gridView avec 10000 éléments par exemple et d'en afficher que X par page



    C'est une GridView fourtnit par DevExpress, c'est peut-être un bug de chez eux ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/09/2006, 08h40
  2. Valeur null lors de la lecture apres un insert
    Par omlip dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/07/2006, 13h56
  3. Format de données perdu lors de requête création
    Par tsitua dans le forum Access
    Réponses: 2
    Dernier message: 24/05/2006, 13h03
  4. Tables perdues lors d'une restauration RMAN
    Par ndetroye dans le forum Recovery Manager
    Réponses: 6
    Dernier message: 09/12/2005, 17h27
  5. [D7] "valeur inaccessible" lors du débogage
    Par Magnus dans le forum EDI
    Réponses: 15
    Dernier message: 25/10/2005, 09h57

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