Tengo una red web y hay una columna que quiero que sea visible solo para ciertos usuarios. Actualmente tengo codificado la red de la siguiente maneraMVC 3 Webgrid: ¿cómo se ocultan las columnas que no quiere que sean visibles?
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")
));
}
Pero sin duda hay una mejor manera sin repetir todo ese código? La única diferencia entre las 2 entradas de columna es que quiero mostrar el enlace Editar para usuarios particulares. Entonces, ¿cuál es la mejor manera alternativa de hacer eso?
WOW ... gran solución Darin. Trabajando como se esperaba –