web-dev-qa-db-fra.com

Comment masquer une colonne jqgrid de manière dynamique

J'implémente jqgrid dans mon application Web asp.net MVC.

Dans ma grille, j'ai deux colonnes éditer et supprimer. La suppression ne doit être visible que si l'utilisateur est connecté en tant qu'administrateur.

Comment pouvons-nous dynamiquement masquer.show colonnes dans jqgrid. Je vais avoir une variable de session pour vérifier si l'utilisateur connecté est Admin ou non.

J'accède à cette variable en javascript. mais, je ne sais pas comment puis-je masquer/afficher la colonne dans jqgrid

S'il vous plaît aider ..

13
Sai Avinash

Celui-ci a fonctionné:

$("#list").hideCol("ColumnName")
13
Sai Avinash

Utilisez ce code,

jQuery("#list").jqGrid('hideCol',["colModel1_name","colModel2_name"]);
jQuery("#list").jqGrid('showCol',["colModel1_name","colModel2_name"]);

Puisse ceci vous aider.

18
Vinoth Krishnan

API plus récente

jQuery("#list").jqGrid('hideCol',["ColumnName","ColumnName2"]);

API plus ancienne

$("#list").hideCol("ColumnName")
9
MurWade

Il n’est pas recommandé d’utiliser js pour gérer votre sécurité. Vous ne devez pas afficher cette colonne côté serveur! 

2
Suwer

Je devais me plonger dans l'héritage aujourd'hui. L'une des conditions était de définir de manière conditionnelle la visibilité de certaines colonnes. Un menu déroulant sur la page définissait un paramètre de catégorie dans la clause where de la grille. Bref, regarder l’événement de changement du menu déroulant n’était pas possible, rendant la plupart des méthodes des réponses non valides.

J'ai pu utiliser un ternaire dans les paramètres cachés pour définir la visibilité.

{
    name: 'mfg',
    index: 'mfg',
    width: 150,
    sortable: true,
    hidden: $('#evCategory').val() == 'Calibration' ? false : true
},

Et il suffit simplement que si la liste déroulante a une valeur d'étalonnage masquée, elle doit être fausse. Si l'étalonnage n'est pas défini, la valeur masquée doit être vraie.

Pourrait également être en mesure de le raccourcir à;

!$('#evCategory').val() == 'Calibration' || true

Bien que je n'ai pas testé cela.

0
Mark Carpenter Jr