我正在使用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完成吗?如果没有,还有什么其他选择?
答案 0 :(得分: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
lambda中放置一个匿名函数。它应返回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 });
}
})