Possible de masquer un SlickGrid colonne SANS le supprimer de la “colonnes” tableau?
J'aimerais masquer une colonne (une colonne ID qui est unique pour chaque ligne), mais je ne peux pas l'enlever de la "colonnes" tableau car j'ai besoin de ces données à la Ligne lorsque les actions sont exécutées sur la Ligne (Sélection, de Tri, ect).
Après avoir été triés par exemple, j'ai besoin de saisir les Lignes correspondent aux styles précédents qu'ils avaient avant, et je peux le faire avec l'ID de la colonne. J'ai besoin des données de la ligne, je n'ai pas envie d'être affichée.
Grâce.
OriginalL'auteur Kevin | 2011-06-16
Vous devez vous connecter pour publier un commentaire.
La réponse est NON, mais ce n'est pas la réponse que vous cherchez 🙂
Autres que les colonnes qui sont à la recherche à saisir leurs données, il n'y a pas de lien entre eux et ce que vos éléments de données. Vous n'avez pas à avoir une colonne visible à avoir un ID sur votre élément de données.
Vous pouvez lier la grille de données de tableau: var data = [{id: 0, title: 'item 1'}, {id: 1, title: 'item3'}, ...]; Si vous choisissez de ne pas afficher la colonne ID, les données sont toujours là sur l'élément de données.
Vous êtes l'homme, merci pour votre aide à un nooby!
Pour ceux qui se demandent comment traduire la ligne sur la grille pour la bonne ligne dans les données, c'est ici:
alert(data[args.row].id)
(en supposant que vous avezid
dans vos données)Donc, la réponse la plus simple est d'omettre la définition de la colonne.
OriginalL'auteur Tin
Au cas où quelqu'un est toujours à la recherche pour cela, j'ai trouvé un moyen... c'est pas massivement élégant, mais il fonctionne. Comme Simon, a suggéré, ajouter la colonne Id, comme la dernière fois dans la grille. Définir à la fois la cssClass et headerCssClass être "display:none !important" et de définir la largeur, minWidth et maxWidth options de colonne à 0 comme suit:
et le css est:
.reallyHidden { display: none !important;}
Espère que ça aide.
Le redimensionnement de la colonne sera de faire en-tête et de la valeur de la cellule miss aligné un peu.
Pour résoudre le problème de redimensionnement, allez à la applyColumnWidths dans slick.grid.js et d'ajouter dans la suite de
if(columns[i].minWidth == 0 && columns[i].maxWidth == 0 ) { columns[i].width = 0; }
.OriginalL'auteur user2837841
Il n'est pas possible, MAIS comme un solution de contournement vous pouvez définir la largeur et/ou maxWidth à 1, définissez le nom d'une chaîne vide à la place de la colonne à l'extrême droite de toutes les autres colonnes. Comme (l'exemple est en coffeescript, si vous vous sentez incertain au sujet de l'utilisation de la syntaxe http://js2coffee.org/):
OriginalL'auteur Simon Landeholm
Pour ce genre de problème, j'ai utilisé deux tableaux. L'un pour l'affichage et l'autre pour columnPicker. Voici comment,
OriginalL'auteur HeiN
dans les colonnes.push({id:id,nom:nom Masqué:true})
//caché assure que la colonne est supprimée lors de la liaison de grille
OriginalL'auteur clarifier
Je réalise que c'est une vieille question, mais la bonne façon de le faire est par l'utilisation d'un fournisseur et d'utilisation de la getItemMetaData à fournir des informations que vous n'avez pas nécessairement envie affichée.
Lorsque vous sélectionnez votre ligne, vous pouvez appeler la grille.getItemMetaData(de la cellule.ligne) pour obtenir de l'information supplémentaire dont vous avez besoin. getItemMetaData retour est prévu un jsonObject décrivant à la fois la ligne et de la cellule au niveau des métadonnées.
Voici les docs qui la décrivent.
https://github.com/mleibman/SlickGrid/wiki/Providing-data-to-the-grid
OriginalL'auteur Damian
Après la recherche de quelques réponses sur ces questions, j'ai trouvé une solution de contournement que fait le truc de cacher la colonne et encore d'enregistrer les données.
Mon problème initial était que j'avais besoin de cacher la colonne ID de la grille, donc, fondamentalement, je me suis caché dans la colonne ID en créant la seule avec le nom de l'attribut, sans préciser autre chose, et la colonne a ensuite été créé, je m'attendais.
essayez de faire de la largeur de la colonne à une largeur minimale de 0.
OriginalL'auteur R3muSGFX