添加列时使用GridMvc和if语句

本文关键字:if 语句 GridMvc 添加 | 更新日期: 2023-09-27 18:10:26

我正在使用GridMvc:

@Html.Grid(Model.Customers).Columns(columns =>
            {
columns.Add(x => x.FirstName).Titled(Translations.Global.FIRST_NAME).SetWidth(110).Sortable(true);

这里如何使用if语句。我想创建if语句,如:

if (x.LastName == 'Me')
{
<span class="label label-success">Active</span>
}
else
{
<span class="label label-important">Banned</span>
}

但是我不知道如何在gridmvc中创建if语句。

添加列时使用GridMvc和if语句

您是否可以使用razor @helper并执行以下操作

@helper CustomRenderingOfColumn(Customer customer)
{
    if (customer.LastName == 'Me')
    {
    <span class="label label-success">Active</span>
    }
    else
    {
    <span class="label label-important">Banned</span>
    }
}

那么在你的网格中看起来就像

@Html.Grid(Model).Columns(columns =>
{
        columns.Add(o => o.Customer.IsVip)
                .Titled("Vip customer")
columns.Add(x=>x.FirstName)
.Titled(Translations.Global.FIRST_NAME)
.SetWidth(110)
.RenderValueAs(o => CustomRenderingOfColumn(o))
.Sortable(true);
})

我认为这段代码有相同的效果

@Html.Grid(Model).Columns(columns =>
{
    columns.Add(o => o.Customer.IsVip).Titled("Vip customer")
    columns.Add()
           .Titled(Translations.Global.FIRST_NAME)
           .SetWidth(110)
           .Encoded(false)
           .RenderValueAs(o => 
               @if (o.LastName == 'Me')
               {
                   <span class="label label-success">Active</span>
               }
               else
               {
                   <span class="label label-important">Banned</span>
               }
    )
    .Sortable(true);
})