MVC:如何只在Html:Grid中显示有值的列
本文关键字:显示 Html MVC Grid | 更新日期: 2023-09-27 17:58:37
我想知道如果列表中没有返回任何内容,如何控制列在Html.Grid中是否可见。因此,如果在下面的示例中Model.Comment在ExampleList中没有值,则不应呈现该列。
@Html.Grid(Model.ExampleList).Columns(c =>
{
c.For(a => string.Format("{0:dd/MM/yyyy}", a.DateRequested)).Named("Date Requested");
c.For(a => a.Comment).Named("Comment");
c.For(a => a.Completed).Named("Completed");
})
如何做到这一点?
您应该使用一个视图模型,在这个视图模型中,您应该有一个布尔属性,指示某个东西是否可见。显然,所有关于确定其值的逻辑都不是视图责任=>而是控制器或模型。例如,您可以有以下视图模型:
public class MyViewModel
{
public bool ShouldDisplayCommentsColumn
{
get
{
return .... // Check the Items and decide whether you
// should be showing the Comments column or not
}
}
public IEnumerable<SomeOtherViewModel> Items { get; set; }
}
然后在视图中:
if (Model.ShouldDisplayCommentsColumn)
{
c.For(a => a.Comment).Named("Comment");
}