添加列时的GridMvc和if语句

时间:2014-06-25 17:58:28

标签: c# asp.net-mvc-3

我正在使用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语句。

2 个答案:

答案 0 :(得分:7)

你可以使用剃须刀@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);
})

答案 1 :(得分:1)

我认为此代码具有相同的效果

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