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 ..
Celui-ci a fonctionné:
$("#list").hideCol("ColumnName")
Utilisez ce code,
jQuery("#list").jqGrid('hideCol',["colModel1_name","colModel2_name"]);
jQuery("#list").jqGrid('showCol',["colModel1_name","colModel2_name"]);
Puisse ceci vous aider.
API plus récente
jQuery("#list").jqGrid('hideCol',["ColumnName","ColumnName2"]);
API plus ancienne
$("#list").hideCol("ColumnName")
Il n’est pas recommandé d’utiliser js pour gérer votre sécurité. Vous ne devez pas afficher cette colonne côté serveur!
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.