MVC 3 Webgrid - how do you hide columns you do not want to be visible?

前端 未结 3 737
[愿得一人]
[愿得一人] 2020-12-05 08:28

I have a webgrid and there is a column I want to be visible only to certain users. Currently I have coded the grid as follows

if (Context.User.IsInRole(Role.         


        
相关标签:
3条回答
  • 2020-12-05 08:54
    grid.Column("FriendlyId", style:"hidecol",header:"")
    

    Instead of using it like this you should use it like in the manner bellow. I've tried, it will work successfully.

    grid.Column(format: @<input type="hidden" name="FriendlyId" value="@item.FriendlyId" />)
    
    0 讨论(0)
  • 2020-12-05 09:01

    Try like this (untested, don't have access to VS at the moment):

    @{
        var gridColumns = new List<WebGridColumn>();
        gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })));
        if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
        {
            gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { contractId = item.ContractId })));
        }
        gridColumns.Add(grid.Column("SignOffDate", "Sign Off Date", format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>));
        gridColumns.Add(grid.Column("FullContractNumber", "Contract Number"));
        gridColumns.Add(grid.Column("ContractTitle", "Title"));
    }
    
    @grid.GetHtml(columns: grid.Columns(gridColumns.ToArray()));
    
    0 讨论(0)
  • 2020-12-05 09:08

    Not sure if it can me made more simpler like this by using "columnNames" parameter. I wanted to show "CustomerCode" column so have just put "CustomerCode" any other column gets excluded.

    WebGrid obj = new WebGrid(Custs,columnNames: new[] { "CustomerCode"});
    

    Taken from

    http://www.codeproject.com/Articles/843788/WebGrid-in-ASP-NET-MVC-important-tips#Tip3:-DisplayNecessaryColumnsMVCWebGrid

    0 讨论(0)
提交回复
热议问题