MVC 3 Webgrid - comment cacher les colonnes que vous ne voulez pas voir?
J'ai un webgrid et il y a une colonne je veux être visible uniquement à certains utilisateurs.
Actuellement, j'ai codé la grille comme suit
if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
{
@grid.GetHtml(columns: grid.Columns(
grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { contractId = item.ContractId })),
grid.Column("SignOffDate", "Sign Off Date",
format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
grid.Column("FullContractNumber", "Contract Number"),
grid.Column("ContractTitle", "Title")
));
}
else
{
@grid.GetHtml(columns: grid.Columns(
grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
grid.Column("SignOffDate", "Sign Off Date",
format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
grid.Column("FullContractNumber", "Contract Number"),
grid.Column("ContractTitle", "Title")
));
}
Mais il y a sûrement une meilleure façon, sans répéter tout ce qui code?
La seule différence entre les 2 entrées de la colonne, c'est que je veux afficher le lien Modifier pour particlaur utilisateurs. Quelle est donc la meilleure alternative façon de le faire?
source d'informationauteur arame3333
Vous devez vous connecter pour publier un commentaire.
Essayez comme ceci (non testé, n'ont pas accès à VS pour le moment):
Ne sais pas si il peut me faites plus de plus simple comme cela, utilisez les "columnNames" paramètre. J'ai voulu montrer "CustomerCode" colonne viens de mettre "CustomerCode" n'importe quelle autre colonne se fait exclure.
Prises de
http://www.codeproject.com/Articles/843788/WebGrid-in-ASP-NET-MVC-important-tips#Tip3:-DisplayNecessaryColumnsMVCWebGrid
Au lieu de l'utiliser comme cela, vous devriez l'utiliser comme de la manière ci-dessous. J'ai essayé, il fonctionne correctement.