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 })
    ))
)

请注意,如果您需要更复杂的场景,您还可以在formatlambda 中放置一个匿名函数。它应该返回一个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 回答