我有一个webgrid,其中我想在我将拥有的列数据上放置一个条件语句?
是否有可能,如果是,你能提供一个例子吗?
修改
只是一个片段
grid.Column("Status","Status",canSort: true)
如果状态值为“正确”,我想显示图像而不是文本。
答案 0 :(得分:1)
这里检查条件我隐藏了我的两列密码和电子邮件地址。通过这样做,我可以阻止我的webgrid显示我不想为特定条件显示的列。
var grid = new WebGrid(Model.User)
if(myConditionCanGoInHere) {
@grid.GetHtml(columns: grid.Columns(
grid.Column("Name"),
grid.Column("Password"),
grid.Column("EmailAddress") ))
}
else{
@grid.GetHtml(columns: grid.Columns(
grid.Column("Name")
// Here I have not included Password and EmailAddress columns.
))
}
这是你想隐藏整列的时候,但如果要显示列并仅隐藏特定值,那么在那种情况下要做什么呢?这也可以做到,你可以有一个if else条件,如下图所示...
@grid.GetHtml(
columns: grid.Columns(
grid.Column(header: "Edit", format: item => item.CanEdit ? Html.ActionLink("Edit","Edit","Person",new {id = item.PersonId},null) : Html.Raw("uneditable")),
grid.Column(columnName: "CanEdit", header: "Editable?"),
grid.Column(columnName: "DisplayName", header: "Display Name"),
grid.Column(columnName: "Email", header: "Email")
)
)
答案 1 :(得分:1)
一个不那么繁琐易读的代码(仅一年半之后)。
var columnsToAdd = new List<WebGridColumn>();
///here add yout collumns according to conditions
@grid.GetHtml(columns: columnsToAdd.ToArray())
答案 2 :(得分:0)
如果我正确理解您的问题,您可能希望在视图中添加“if”语句。类似的东西:
@{
var option1 = true;
var option2 = false;
}
@if(option1){
<div id="grid1">
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("firstColumn"),
grid.Column("secondColumn")
)
)
</div>
} else if (option2) {
<div id="grid2">
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("firstColumn"),
grid.Column("secondColumn"),
grid.Column("thirdColumn")
)
)
</div>
} else {
<div id="grid3">
No grid
</div>
}