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 :

GridView et postback [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut GridView et postback
    Bonjour à tous,

    Je bute sur un problème, je ne sais pas comment ré-afficher mes gridview après un postback :

    Mon application est découpée selon le modèle 3-tiers.

    Je génère des gridview de façon dynamique, c'est à dire que ma page peut afficher 1 à n gridview selon la demande de l'utilisateur.

    Le problème, c'est que deux actions sont possibles sur la page mais les deux me font disparaitre mes gridview

    Je pensais faire un "gridview.databind()" mais j'ai plusieurs problèmes avec cette méthode :

    - le gridview.DataSource n'existe plus après un postback
    - Je ne peux pas stocker ces DataSource avec un Session ou ViewState
    - Je ne sais pas si mes gridview seront placés au bon endroit car je génère de façon aléatoire la création de Table, TableRow etc

    Est-ce que quelqu'un à une idée ? Je peux fournir du code au besoin

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut
    Pas moyen de trouver une solution .. Je vous détaille mon code si ça peut aider :

    J'ai une page en aspx qui contient une textbox, deux boutons et un placeHolder.

    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
    <asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="Server">
     
        <asp:TextBox ID="TextBoxSearch" runat="server"></asp:TextBox>
     
        <asp:Button ID="ButtonSearch" runat="server" Height="34px" Text="Ok"/>
     
        <p>
            <asp:PlaceHolder ID="ph" runat="server"></asp:PlaceHolder>
        </p>
     
        <p>
            <asp:Button ID="ButtonExport" runat="server" Text="Export Data"/>
        </p>
     
    </asp:Content>
    Lorsque l'utilisateur clique sur le premier bouton (TextBoxSearch), je regarde ce que contient la textbox et exécute une requête qui me retourne un ou plusieurs résultats.

    Comme je ne connais pas le nombre de résultats que me retourne ma requête, je créé des gridview dynamiquement auxquels j'associe des checkbox.

    Le problème, c'est au postback, mes gridviews disparaissent et je n'ai aucun moyen de récupérer les DataSource pour refaire un bind.

    J'espère que quelqu'un a une petite idée car je bloque vraiment ..

    Merci

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Jah73 Voir le message
    Le problème, c'est au postback, mes gridviews disparaissent et je n'ai aucun moyen de récupérer les DataSource pour refaire un bind.
    Ben il faut que tu persistes les infos dont tu as besoin afin de récupérer les DataSources. Donc tu n'as pas d'autre solution que de passer par la Session ou par le ViewState ou encore le cache... Dans ton premier post, pourquoi dis-tu que tu ne peux pas les utiliser ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut
    Bonjour DotNetMatt,

    Je ne parviens pas à récupérer les datasources car ils sont dans la couche d'accès aux données et je ne peux pas faire de "Session".

    De plus, je ne vois pas comment je peux récupérer dynamiquement. Il faudrait que je fasse un "tableau" de Session ?

    Merci pour ton aide !

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Ok je vois En fait normalement la création de la source de données doit se faire comme suit :
    1. L'UI demande à la BLL la source de données
    2. La BLL valide (éventuellement) les infos qu'elle reçoit en entrée, puis elle envoie la demande à la DAL.
    3. La DAL génère la source de données, puis la renvoie à la BLL.
    4. La BLL valide (éventuellement) les infos qu'elle reçoit de la DAL et applique (éventuellement) des règles métier.
    5. La BLL renvoie la source de données à l'UI.

    Suite à cela, il y a alors plusieurs possibilités :
    - Tu peux stocker la source de données en session
    - Tu peux solliciter demander la création de la source de données à chaque postback
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut
    C'est exactement ce que je fais

    Je suis entrain de développer ton idée :
    Tu peux stocker la source de données en session
    Pour ce faire, je pensais récupérer les gridview.datasource de la couche DAL. Je stocke ces datasource dans un array que je renvoie à l'UI qui garde cette array en session. A chaque postback, je fais un foreach de mon array où je bind les datasource.

    Qu'est ce que tu en penses ?

    Encore merci pour ton aide

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

Discussions similaires

  1. Sauver l'etat d'un gridview pour postback
    Par patrice419 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/05/2012, 18h38
  2. GridView + TextBox + PostBack
    Par Neodream dans le forum Débuter
    Réponses: 2
    Dernier message: 15/04/2010, 15h03
  3. Modifier la requête gridview à chaque postBack
    Par stroumfs dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/02/2009, 19h30
  4. Gridview, footer, postback et lifecycle
    Par mcolo dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/09/2008, 14h58
  5. Gridview Problème Postback
    Par hippoX dans le forum ASP.NET
    Réponses: 8
    Dernier message: 17/07/2007, 13h31

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