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; }