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 に答える