Affichage du bouton Modifier dans GridView en fonction du rôle

J’ai une vue en grid. J’ai ajouté AutoGenerateEditButton=True .

Je souhaite afficher ce bouton pour les utilisateurs appartenant à un certain rôle. Sinon, le bouton n’est pas rendu.

Que recommandez-vous? Quel événement dois-je gérer pour atteindre cet objective?

Dois-je travailler avec des contrôles basés sur des modèles tels que ListView?

Solution :

      

Et l’événement Load de GridView:

 if(!User.IsInRole("Manager")) { for (int i = 0; i < grdMovies.Columns.Count; i++) { if (grdMovies.Columns[i] is CommandField) { grdMovies.Columns[i].Visible = false; } } } 

Utilisez ButtonField avec ButtonField CommandName = Edit . Vous pouvez masquer la colonne dans la fonction Page_Load fonction du rôle de l’utilisateur:

 const int _editColumnIndex = 0; void Page_Load(object sender, EventArgs e) { if(!User.IsInRole("Manager")) grdMovies.Columns[_editColumnIndex].Visible = false; } 

Quoi qu’il en soit, tenez compte de ce code plus correct:

 foreach (CommandField column in grdMovies.Columns.OfType) { column.Visible = false; }