Comment dimensionner automatiquement la largeur de colonne dans l'interface utilisateur AngularJS
Dans AngularJS l'interface utilisateur-réseau , comment puis-je configurer la grille, de sorte qu'il peut ajuster automatiquement la largeur des colonnes en fonction du contenu quand il rendu?
Je sais qu'il est un tutoriel montrant l'auto en fonction de la taille, mais qui ne fonctionne que lorsque vous double-cliquez sur la colonne, je souhaite qu'elle pourrait se produire lorsque la grille est lancé.
source d'informationauteur Tony
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que cette fonction existe sur ce point. Le uiGridColumnResizer directive est en cours d'enregistrement des écouteurs d'événement sur dblclick, mousedown et mouseup. L'événement dblclick est fondamentalement en passant par toutes les cellules rendus et le calcul du maximum de la largeur et de la définir comme la largeur de la colonne. Ce sera un problème de performances si vous avez beaucoup de lignes rendus.
Je serais probablement juste de définir une largeur maximum sur la base des données de la grille.
Ou d'essayer de reproduire le comportement de la uiGridColumnResizer.
utilisation d'un astérisque dans votre définition de la colonne:
Il y a un pluggin qui ne ce: ui-grille-ajustement automatique des colonnes
GitHub: https://github.com/Den-dp/ui-grid-auto-fit-columns
Exemple: http://jsbin.com/tufazaw/edit?js,sortie
Utilisation:
vous pouvez utiliser
*
comme dans la largeur de la propriété - est à considérer comme l'auto
vous pouvez voir ici
Donc, cela a fonctionné pour moi quand j'en avais besoin pour réduire toutes les colonnes sauf pour un. Je itérer sur toutes les colonnes après la grille est fini de charger, et de déclencher un événement de clic double sur le resizer. Pas la plus jolie, donc, si quelqu'un d'autre a une meilleure solution, je serais très heureux de l'entendre!
À l'aide de
width : "*"
permettra de régler toutes les colonnes dans la vue du port, ce qui entraîne dans les colonnes de comprimé.Précisant
minWidth: "somevalue"
etwidth: "*"
rend votre interface utilisateur-réseau regarder mieuxajouter le texte suivant à la gridoptions
Assurez-vous d'avoir une largeur de nombre aléatoire sur chaque colonne définition
est fine.
Je n'ai pas trouvé de mise en œuvre de cette sorte c'est ce que j'ai fait
Itérer les 10 premiers enregistrements.
Trouvé la taille maximale de données pour chaque colonne.
Ensuite créé un
span
tag sur la mouche et l'enveloppa avec ces données.Mesurée la largeur de la balise et que serait votre env largeur de la colonne (peut-être besoin d'ajouter plus de largeur constante en raison de CSS effet etc).
Si les 10 premiers enregistrements sont
null
puis faire le même processus, mais cette fois avec en-tête de colonne.Meilleure solution je peux trouver est:
html:
css:
js
Je sais que cela ne peut pas fonctionner dans tous les cas, mais la plupart du temps, la plupart de vos colonnes sont plus ou moins fixe et la partie variable de ceux qui vous savez à l'avance sont ceux à laisser redimensionner.
J'ai trouvé quelques problèmes avec la largeur de la solution. Nous devrions utiliser la propriété 'cellClass" dans l'interface utilisateur de colonnes de la grille de l'objet pour activer cette classe.
alors vous devriez utiliser la propriété cellClass dans l'interface utilisateur de colonnes de la grille de l'objet pour activer cette classe sur votre grille (quelque chose comme ça):
Vous pouvez vous référer à nekhaly de réponse description détaillée. https://github.com/angular-ui/ui-grid/issues/3913
essayez d'utiliser
'width: auto'
..apparemment à l'aide de cette question dans une précédente version deui-grid
il devrait fonctionner maintenant, il fait partie de ses docs ici: définition des colonnesEDIT: référence lien vers fermé le numéro 565 page