【问题标题】:MVC webgrid - can you hide a column? [duplicate]MVC webgrid - 你能隐藏一列吗? [复制]
【发布时间】:2011-08-19 15:45:55
【问题描述】:

可能重复:
MVC 3 Webgrid - how do you hide columns you do not want to be visible?

我在我的 MVC 应用程序中使用 WebGrid。我想要做的是在我的表单中放置一个 if 语句,以根据条件隐藏一列。下面的代码显示了我对 if 语句的意思,但这是不允许的;

@grid.GetHtml(columns: grid.Columns(
    grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
    if(Context.User.IsInRole(ITOF.Web.Models.Role.Inputter)
    {
        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")
));

【问题讨论】:

    标签: asp.net-mvc webgrid


    【解决方案1】:

    我不知道这是否有效,因为我不知道助手的内部工作原理。您可能可以这样做:

        @{
            var temp = grid.GetHtml(....);        
    
            if(Context.User.IsInRole(ITOF.Web.Models.Role.Inputter)
            {
                temp.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { contractId = item.ContractId })),
            }
        }
    
        @Html.Raw(temp);
    

    助手应该返回一个网格对象而不是一个字符串,否则你不能再添加列了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 2016-11-26
      • 2013-10-15
      • 2013-11-28
      • 2017-07-06
      • 1970-01-01
      • 2011-11-02
      相关资源
      最近更新 更多