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 :

Garder visible l'entête d'un gridview


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut Garder visible l'entête d'un gridview
    Bonjour,

    Je dispose d'un tableau définit par un gridview et dont les données sont issus d'une base de données :

    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
    <asp:GridView ID="GridViewSite" runat="server" OnRowDataBound="GridView1_RowDataBound" AllowPaging="False" 
               AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Code" 
               DataSourceID="SqlDataSourceSite" BorderColor="#94979A"  CellPadding="10" BackColor="#ECEBEF"  HeaderStyle-BackColor="#6A97D0" AlternatingRowStyle-BackColor="#D2DBE6" HeaderStyle-ForeColor="White">
               <Columns>
     
                   <asp:TemplateField ShowHeader="true">
                    <ItemTemplate>
                        <asp:CheckBox ID="chkBox" runat="server" />
                    </ItemTemplate>
                    <HeaderTemplate>
                        <asp:CheckBox ID="cbSelectAll" runat="server" Text="" />
                    </HeaderTemplate>
        </asp:TemplateField>
     
                   <asp:BoundField DataField="Code" HeaderText="Code" 
                       SortExpression="Code" ShowHeader="true"/>
                   <asp:BoundField DataField="Libellé" HeaderText="Libellé" 
                       SortExpression="Libellé" ShowHeader="true"/>
               </Columns>
           </asp:GridView>
    Ce que je voudrais savoir, c'est comment faire pour que l'entête du tableau reste toujours visible même lorsque la requête sur les données ne retourne aucun résultat ?

    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Affecte à ta grid une datasource non nulle mais vide lorsque ta source de données réelle ne contient aucun élément.

    Une petite [ame="http://www.google.fr/search?hl=fr&rlz=1G1GGLQ_FRFR290&&sa=X&ei=HZUXTOriI9L24AbCvL2LDA&ved=0CBQQBSgA&q=gridview+show+header+no+results&spell=1="]recherche[/ame] sur le net t'aurais aidé...

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Recherche du cote javascript css

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    J'ai essayé la méthode que calagan99 m'a conseillé :

    protected void Page_Load(object sender, EventArgs e)
    {

    ...

    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
    24
    25
    26
    27
    //Affichage de l'entête du tableau même si la requête ne retourne rien
                    this.EmptyGridFix(GridViewSite);
     
                    if (!this.IsPostBack)
                    {
                        this.LoadGrid();
                    }
     
    ...
              }
     
    protected void LoadGrid()
            {
                DataSet dsMyDataSet = null;
     
                // obtain dataset/datatable from DAL/BAL
     
                GridViewSite.DataSource = dsMyDataSet.Tables[0];
                GridViewSite.DataBind();
     
                this.EmptyGridFix(GridViewSite);
            }
     
     protected void EmptyGridFix(GridView grdView)
        {
            // method code comes here
        }
    Mais j'obtiens un message d'erreur

    La référence d'objet n'est pas définie à une instance d'un objet

    GridViewSite.DataSource = dsMyDataSet.Tables[0];
    Est-ce que quelqu'un verrait d'où vient le problème et à quoi correspond exactement dsMyDataSet ?

    Merci.

  5. #5
    Membre Expert
    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 : 42
    Localisation : France

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

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

    Pourquoi réinventer la route à chaque fois ?

    EditItemTemplate et le tour est joué

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Faut réfléchir un minimum quand on copie un code trouvé sur internet hein !!!

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Ton lien EditItemTemplate va quelque part ?

    J'avais déja vu la propriété <EmptyDataTemplate> mais je voudrais non pas avoir un message mais bien avoir l'entête de mes colonnes.

    J'ai bien essayé de représenter cela de cette manière mais c'est pas terrible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <EmptyDataTemplate>
              <asp:CheckBox runat="server"/>
              <asp:HyperLink  Text="Code" runat="server"></asp:HyperLink>
              <asp:HyperLink Text="Libellé" runat="server"></asp:HyperLink>
    </EmptyDataTemplate>

Discussions similaires

  1. probleme de gridview"comment visibler un champs daus un gridview "
    Par jakline2010 dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 25/07/2012, 14h18
  2. Visibler un champs dans une Gridview
    Par jakline2010 dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 19/07/2012, 20h02
  3. garder visibles les sous menus
    Par fkba67 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/05/2012, 16h16
  4. Réponses: 5
    Dernier message: 01/12/2009, 15h03
  5. Comment modifier la hauteur de l'entète dans un Gridview?
    Par The_Miagiste dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/08/2009, 15h27

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