Soy nuevo en MVC3. Estoy usando un WebGrid para mostrar algunas columnas en un sitio para una subasta en la que estoy trabajando. Esto muestra una grilla que muestra las últimas ofertas. Cuando alguien, excepto un administrador inicie sesión, solo debería ver los montos y la fecha/hora de la oferta. Cuando un administrador inicia sesión, deberían ver todas las columnas (nombre e información de contacto). Estoy pensando que probablemente tenga que dar masajes a esto en código de alguna manera, pero me preguntaba si hay una forma de manejarlo en el marcado Razor. Aquí es la que tengo ahora:Cómo ocultar columnas en WebGrid?
@{ var grid = new WebGrid(Model.Bids.OrderByDescending(b => b.BidAmount)); }
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("BidAmount", format: @<text>[email protected]</text>),
grid.Column("BidDateTime"),
grid.Column("FirstName"),
grid.Column("LastName"),
grid.Column("Email"),
grid.Column("PhoneNumber")
)
)
Así que lo que quiero hacer, en pseudo código, es algo como esto:
@{ var grid = new WebGrid(Model.Bids.OrderByDescending(b => b.BidAmount)); }
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("BidAmount", format: @<text>[email protected]</text>),
grid.Column("BidDateTime"),
@if(userIsAdmin){
grid.Column("FirstName"),
grid.Column("LastName"),
grid.Column("Email"),
grid.Column("PhoneNumber")
)
}
)
Puede hacerse esto? Si no, ¿alguna idea sobre cómo abordarlo? ¿Tendría que codificar dos WebGrid diferentes y rodearlos con un if() tal vez?
¿Has intentado rodear una sola columna con un control condicional? (No estoy seguro de si eso es posible.) Algo como: if (isAdmin) {grid.Column (...)} – JasCav
@Todd ¿Recibió alguna solución para esto? Si es así, ¿puedes publicarlo aquí? – pramodtech
http://stackoverflow.com/questions/7172420/mvc-3-webgrid-how-do-you-hide-columns-you-do-not-want-to-be-visible – muthuvel