1

ページングに Webgrid を使用しています。各項目にアクセスする方法はありますか? たとえば、モデルのアイテムが特定の基準を満たしている場合、いくつかのリンク列を追加したいと考えています。例えば:

@grid.GetHtml(columns: grid.Columns(
     /If (item.name == "test")// statement to test condition here{
       grid.Column(format: (item) => Html.ActionLink("Delete", "Delete", new { name = item.name })),
       }
       else{
       grid.Column(format: (item) => Html.ActionLink("Detail", "Detail", new { name = item.name })),
        }
        grid.Column("FirstName"),
        grid.Column("LastName"),
        grid.Column("EmailAddress")
    )

これは webgrid で実行できますか? そうでない場合、他の選択肢は何ですか?

4

1 に答える 1

4

formatそのような条件をパラメーター自体の中に入れることができるはずです。このような:

@grid.GetHtml(columns: grid.Columns(
    grid.Column(format: item => 
        (item.name == "test") ?
            Html.ActionLink("Delete", "Delete", new { name = item.name })
            : Html.ActionLink("Detail", "Detail", new { name = item.name })
    ))
)

より複雑なシナリオが必要な場合は、formatラムダ内に匿名関数を配置することもできます。MvcHtmlString(ActionLinkなどのように) を返す必要があります。

grid.Column(format: item => 
{
    if (item.name == "test")
    {
        return Html.ActionLink("Delete", "Delete", new { name = item.name });
    }
    else
    {
        return Html.ActionLink("Detail", "Detail", new { name = item.name });
    }
})
于 2012-12-13T18:24:41.603 に答える