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

AngularJS Discussion :

Comment ne pas afficher la grid (ui-grid de AngularJs) quand il n'y a aucune donnée


Sujet :

AngularJS

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Points : 250
    Points
    250
    Par défaut Comment ne pas afficher la grid (ui-grid de AngularJs) quand il n'y a aucune donnée
    Bonjour,

    j'implémente une grid (ui-grid) dans le cadre de AngularJs.

    Mon problème est qu'une partie de la grid s'affiche quand il n'y a pas de données

    Nom : GridSansValeurs.png
Affichages : 272
Taille : 133,5 Ko

    Merci d'avance pour vos suggestions

  2. #2
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Points : 250
    Points
    250
    Par défaut
    Bonsoir Slim et merci pour ta réponse.

    j'ai essayé ceci mais ça ne marche pas (je ne veux rien voir quand il n'y a pas de données)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div id="grid1" ui-grid="gridOptions" ui-grid-grouping  ng-show="!gridOptions.data.length" class="grid"></div>
     
    OU 
    <div ng-show="!gridOptions.data.length">
    <div id="grid1" ui-grid="gridOptions" ui-grid-grouping   class="grid"></div>
    </div>
    Pourtant dans mon controlleur, j'ai bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            $scope.gridOptions = {
            	    enableFiltering: true,
                         ..........
            }

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Points : 250
    Points
    250
    Par défaut
    Re-bosoir,

    excuse moi , j'ai oublié de dire ce qui n'allait pas


    quand j'affiche ma page la grid est bien cache car au depart il n'y a pas de données, mais lorsque je fait une recherché avec des données, la grid est toujours invisible, à croire que la propriété "gridOptions.data.length" n'est pas rafraichie

  5. #5
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    tu peux reproduire le problème sur le plunker que j'ai donné en exemple ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Points : 250
    Points
    250
    Par défaut
    Bonsoir Slim,

    je vais essayer peut être pas tout de suite car je vais rentrer chez moi et diner. A plus

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 085
    Points : 44 682
    Points
    44 682
    Par défaut
    Bonjour,
    un axe de réflexion ng-show="!gridOptions.data.length".

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Points : 250
    Points
    250
    Par défaut
    Bonjour à tous,

    Slim, ça marche sur ton exemple. Pour mon application, ça marche à moitié:

    1) Au depart quand je n'ai pas de données, la grid ne s'affiche pas

    2) En revanche quand je fais une recherche et qu'il y a des données, la grid s'affiche mais les premières colonne sont décalées sur la gauche et les autres colonnes sont invisibles

    Nom : GridSansValeurs-2.png
Affichages : 235
Taille : 138,1 Ko

  9. #9
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Et bien le problème ne doit pas être l'affichage ou non du tableau, mais les options du grid.
    Désolé mais j'ai du mal avec des captures d'écran. Rien ne vaut un exemple concret sur les systemes comme plunker, jsbin, jsfiddle...

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Points : 250
    Points
    250
    Par défaut
    Re-bonjour Slim


    Voici mes options

    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
     
            $scope.gridOptions = {
            	    enableFiltering: true,
            	    treeRowHeaderAlwaysVisible: false,
            	    data: [],
            	    columnDefs: [
            	      { name: 'blockAStatus',field: 'blockAStatus', displayName: 'A' , width: '4%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents {{COL_FIELD | rawValue | blockStatusClass}}" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'blockBStatus',field: 'blockBStatus', displayName: 'B' , width: '4%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents {{COL_FIELD | rawValue | blockStatusClass}}" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'blockCStatus',field: 'blockCStatus', displayName: 'C' , width: '4%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents {{COL_FIELD | rawValue | blockStatusClass}}" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'blockDStatus',field: 'blockDStatus', displayName: 'D' , width: '4%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents {{COL_FIELD | rawValue | blockStatusClass}}" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'blockEStatus',field: 'blockEStatus', displayName: 'E' , width: '4%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents {{COL_FIELD | rawValue | blockStatusClass}}" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'cfid',field: 'cfid', displayName: 'N° CF', grouping: { groupPriority: 0 }, sort: { priority: 0, direction: 'asc' }, width: '10%', cellTemplate: '<span ng-if="row.groupHeader && col.grouping.groupPriority === row.treeLevel">{{COL_FIELD}}</span><span ng-if="!(row.groupHeader && col.grouping.groupPriority === row.treeLevel)">{{row.entity.partNumber}}</span>' },
            	      { name: 'csfLabel',field: 'csfLabel', displayName: 'Description', width: '30%', treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<span ng-if="row.groupHeader">{{COL_FIELD | rawValue}}</span><span ng-if="!(row.groupHeader)">{{row.entity.partDescription}}</span>' },
            	      { name: 'supplierSiteCode',field: 'supplierSiteCode', displayName: 'Manufactoring Site Code' , width: '10%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'vendorCode',field: 'vendorCode', displayName: 'Nissan Local code' , width: '10%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'supplierName',field: 'supplierName', displayName: 'Supplier Name' , width: '10%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'supplierSiteCodeCity',field: 'supplierSiteCodeCity', displayName: 'Town' , width: '10%' , treeAggregationType: uiGridGroupingConstants.aggregation.MAX, cellTemplate: '<div ng-if="row.groupHeader" class="ui-grid-cell-contents" >{{COL_FIELD | rawValue}}</div><div ng-if="!(row.groupHeader)" class="ui-grid-cell-contents" ></div>'},
            	      { name: 'partNumber',field: 'partNumber', visible: false },
            	      { name: 'partDescription',field: 'partDescription', visible: false }
            	    ],
            	    onRegisterApi: function( gridApi ) {
            	        $scope.gridApi = gridApi;
            	    }
            	  };

  11. #11
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    c'est surement les width: 4%, 10% etc. qu'il faut modifier.
    Mais là on avance qu'en tatonnant. Crée ton exemple sur un plunker. On perdra moins de temps

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Points : 250
    Points
    250
    Par défaut
    Bonjour,

    j'ai trouvé la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div data-ng-show="gridOption.data.length" >
       <div ui-grid="gridOption"  ui-grid-grouping ui-grid-resize-columns></div>
    </div>

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

Discussions similaires

  1. [WebForms]Comment ne pas afficher la barre d'outils Word ?
    Par hinanui dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 21/08/2008, 10h05
  2. Réponses: 5
    Dernier message: 02/08/2004, 17h11
  3. [JTable] Comment ne pas afficher les titres ?
    Par FabienBxl dans le forum Composants
    Réponses: 3
    Dernier message: 08/10/2003, 15h01
  4. Réponses: 6
    Dernier message: 10/09/2002, 03h35

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