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 :

Application de la propriété visible d'un composant en cas de rafraichissement partiel


Sujet :

ASP.NET Ajax

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Points : 224
    Points
    224
    Par défaut Application de la propriété visible d'un composant en cas de rafraichissement partiel
    Bonjour,

    J'ai un gridview que je rempli et vide à l'aide de deux boutons images 'ajouter' et 'suppriemr' (Chacune ayant une fonction propre).

    J'applique une mise à jour partielle juste sur le tableau lorsque je clique sur les deux boutons (afin de ne pas avoir un rafraichissement totale de ma page à chaque modification de mon tableau).

    J'ai aussi appliqué la propriété emptydatatemplate en cas d'abscence de données.
    Jusque là, pas de problème.

    Par contre, je voudrais que lorsque mon tableau est vide, mon bouton supprimer ne soit pas visible.
    J'ai donc penser à rajouter dnas mon page load

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (GridViewSite.Rows.Count == 0)
                    {
                        BoutonSupprimerSite.Visible = false;
                    }
                    else
                    {
                        BoutonSupprimerSite.Visible = true;
                    }
    Cela marche au chargement de ma page, mais sachant que je n'ai qu'un rafraissement partielle de ma page, ceci ne marche plus lorsque j'applique mes ajouts et mes suppression, cad :

    - lorsque j'ai des données dans mon tableau et que je supprime tous à l'aide de mon bouton 'supprimer', celui-ci reste visible même si il n'y plus de données
    -inversement, lorsque mon tableau est vide au début et que j'ajoute des données avec mon bouton ajouter, le bouton supprimer ne réapparait pas.

    J'ai essayé de jouer avec les postback mais sans succés.
    Est-ce que quelqu'un verrait comment faire ? Merci.

  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,

    Comment fais-tu ton rafraîchissement partiel ? Avec un UpdatePanel ? Si oui, le bouton supprimer est bien dedans ? Tu es en mode UpdateMode="Always" ?

    Sinon, ton bouton fait partie de ta GridView ? Si oui, il faut appliquer la visibilité après le Bind de la DataSource de ta Grid et non après.

    En espérant t'avoir aidé.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Points : 224
    Points
    224
    Par défaut
    Non, en fait mes deux boutons sont extérieurs au gridview :

    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
    23
    <asp:ImageButton ID="BoutonAjouterFichier" 
                ImageUrl="/Images_Projet/Images/Ajouter.png" width="22" height="22" 
                runat="server" onclick="BoutonAjouterfichier_Click"   /> &nbsp;
            <asp:ImageButton ID="BoutonSupprimerFichier" 
                ImageUrl="/Images_Projet/Images/supprimer.png" width="22" height="22" 
                runat="server" onclick="BoutonSupprimerFichier_Click"  />
     
     <asp:UpdatePanel ID="UpdatePanel3" runat="server">         
          <ContentTemplate>  
        <GridViewEmp:EmptyGridView ID="GridViewListeFichier" runat="server" OnRowDataBound="GridView1_RowDataBound" AllowPaging="False" ShowHeader="true" 
               AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Chemin" 
               DataSourceID="SqlDataSourceFichier" BorderColor="#94979A"  CellPadding="10" BackColor="#ECEBEF"  HeaderStyle-BackColor="#6A97D0" AlternatingRowStyle-BackColor="#D2DBE6" HeaderStyle-ForeColor="White">    
     
           <Columns>
                ...                          
           </Columns>
     
         </GridViewEmp:EmptyGridView>   
     
         </ContentTemplate> 
        <Triggers><asp:postbacktrigger ControlID="BoutonAjouterFichier"/></Triggers>  
        <Triggers><asp:AsyncPostBackTrigger ControlID="BoutonSupprimerFichier" /></Triggers> 
         </asp:UpdatePanel>
    Et donc ma image d'abscence de données apparait et disparait bien quand il faut.
    Par contre, c'est l'affichage de 'BoutonSupprimerFichier' qui ne va pas.

    J'ai pensé à rajouter dans mon pageLoad et aussi dans mes fonctions BoutonAjouterfichier_Click et BoutonSupprimerFichier_Click ce code, mais cela ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     if (GridViewListeFichier.Rows.Count == 0)
                    {
                        BoutonSupprimerSite.Visible = false;
                    }
                    else
                    {
                        BoutonSupprimerSite.Visible = true;
                    }
    Est-ce que tu aurais une idée? Merci.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Si tu mes tes boutons dans l'Update Panel, cela doit fonctionner.
    Ou tu peux encore faire un Update Panel autour de tes boutons avec une mise à jour non conditionnelle

  5. #5
    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
    Si tes deux boutons ne sont pas dans l'UpdatePanel, ils ne peuvent pas être rafraîchis en asynchrone, normal non ?

    Donc soit tu utilises un PostBack standard, soit tu les inclus dans l'UpdatePanel...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Points : 224
    Points
    224
    Par défaut
    Ok merci.
    En fait, je pensais qu'on ne pouvait pas mettre dans le <ContentTemplate> l'élément qui est déja dans <Triggers>.

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

Discussions similaires

  1. probléme excel.application propriété visible
    Par foofty dans le forum VB.NET
    Réponses: 8
    Dernier message: 14/05/2009, 14h44
  2. Réponses: 22
    Dernier message: 12/08/2008, 17h35
  3. [Delphi 6] Problème avec la propriété Text d'un composant
    Par bionoir dans le forum Composants VCL
    Réponses: 4
    Dernier message: 08/12/2005, 11h23
  4. [D6] PB ajout de propriétés font dans un composant
    Par Pill_S dans le forum Composants VCL
    Réponses: 11
    Dernier message: 25/10/2005, 20h16
  5. Accès aux propriétés ScrollBar d'un composant TMemo
    Par fausto dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/10/2003, 11h08

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