1

可能重复:
MVC 3 Webgrid - 如何隐藏不想显示的列?

我在我的 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")
));
4

1 回答 1

0

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

    @{
        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);

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

于 2011-08-19T16:02:44.003 回答