J'ai un System.Data.DataTable que je lie à un GridView. Si l'utilisateur n'a pas un certain rôle de sécurité, je veux remplacer les données dans certaines colonnes par un "X". Puis-je faire cela sans boucler toutes les lignes?Modifier la valeur de chaque cellule dans une colonne DataTable
Répondre
Vous pouvez également le faire à l'arrière. Transmettez l'ID utilisateur ou le rôle à un sp qui renvoie uniquement les colonnes visibles et les valeurs "X" pour les colonnes qu'ils ne peuvent pas voir et liez l'interface utilisateur à cela.
Implémentez l'événement RowDataBound de GridView et effectuez les modifications si le rôle de sécurité de l'utilisateur est insuffisant.
void CusomGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(User.Role != "Admin")
{
e.Row.Cells[1].Text = "X";
}
}
Strictement parlant, non. Vous pouvez utiliser des méthodes d'extension de style Linq pour masquer l'implémentation, mais tout code dans un langage procédural va impliquer une boucle itérative à travers les lignes. Même l'événement RowDataBound est déclenché de manière itérative par chaque ligne; cependant, il s'agit d'itérer sur les lignes, donc au moins vous ne dupliquez pas le comportement de la boucle.
Vous pouvez simplement avoir une deuxième colonne disponible et prêtez-la "votre colonne2" remplie de données x, vous déterminez ensuite quelle colonne est visible en fonction du niveau d'accès administrateur.
Dans VB.NET, vous ne pouvez pas modifier les valeurs de chaque ligne sans récursion.
- 1. Valider chaque colonne de dataTable utilisant Hashtable
- 2. comment extraire une valeur dans la colonne datatable
- 3. Obtenir une valeur de la colonne de la glace: dataTable dans le validateur d'une autre colonne
- 4. Trouver une valeur dans DataTable
- 5. Comment modifier des données spécifiques dans une colonne datatable?
- 6. Linq: sélection d'une valeur dans une colonne datatable
- 7. Modifier la cellule dans la ligne sélectionnée
- 8. Comment comparer chaque seconde cellule de colonne à une valeur spécifique?
- 9. Ajouter virgule à chaque valeur (par ligne) dans une cellule
- 10. C# Valeur de liaison de la colonne datagridview à DataTable
- 11. Comment valider et modifier une valeur de cellule
- 12. Syntaxe jQuery pour modifier la valeur d'une cellule de tableau
- 13. Comment commuter cellule Modifier lors de quitter la cellule
- 14. Modifier la première colonne de GridView
- 15. première valeur de colonne dans une datable
- 16. Comment compter chaque valeur d'une colonne dans une table?
- 17. Modifier par programme la valeur d'une cellule EditorGrid
- 18. Comment exposer une colonne dans DataTable
- 19. Comment modifier la cellule de type Linkcolumn dans un gridview
- 20. Trouver la valeur la plus élevée d'une colonne pour chaque valeur unique dans une autre colonne avec MySQL
- 21. Comment refaire une cellule @ rich: dataTable
- 22. Sélectionnez chaque ligne de chaque table dans la base de données où (nomColonne = valeur) si le nom de colonne existe
- 23. datatable: make script côté serveur pour filtrer chaque colonne
- 24. Modifier la valeur par défaut de la colonne
- 25. obtenir la même valeur dans chaque cellule de la vue de table dans l'objectif-c
- 26. JQuery DataTable cellule d'une rangée cliquez
- 27. Obtenez une valeur booléenne de DataTable
- 28. Le type d'entrée HTML permet d'envoyer une valeur sans modifier la valeur de la colonne?
- 29. Insérer Max Valeur de la colonne dans une autre colonne
- 30. Comment affecter une valeur à la cellule de la cellule de données wpf
Est allé avec cette solution, car il ne nécessite pas une boucle supplémentaire à travers les lignes ou des contrôles de rôles multiples. Le processus de vérification des rôles est un peu impliqué. – RememberME