添加CSS类MVCContrib格排 [英] Add css class to row in MVCContrib grid

查看:85
本文介绍了添加CSS类MVCContrib格排的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我显示数据的网格,并且所述属性之一是期满日期。如果到期日不超过60天了,我想突出显示该行。

I'm displaying a grid of data, and one of the attributes is an expiration date. If the expiration date is less than 60 days away, I'd like to highlight the row.

我发现<一个href=\"http://stackoverflow.com/questions/4662543/how-to-style-rows-in-the-mvccontrib-grid-based-on-their-data\">this帖子,以及所使用的答案有使用 RowAttributes 功能:

I found this post, and used the answer there to use the RowAttributes function:

@Html.Grid(Model.PagedList).Columns(column =>{
    column.For(m => m.Name);
    column.For(m => m.ExpirationDate);        
}).Sort(Model.GridSortOptions)
.Attributes(@class => "grid")
.RowAttributes(m => new MvcContrib.Hash(@class =>
    (m.Item.ExpirationDate.Value.AddDays(-60) < DateTime.Now)) ? "warning" : "")

但我得到一个编译错误说:

But I get a compilation error saying:

无法隐式转换类型'MvcContrib.Hash'到'布尔'

我在做什么错在这里?

推荐答案

以下工作正常,我:

型号:

public class MyViewModel
{
    public DateTime? ExpirationDate { get; set; }
}

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new[]
        {
            new MyViewModel { ExpirationDate = DateTime.Now.AddDays(70) },
            new MyViewModel { ExpirationDate = DateTime.Now.AddDays(30) },
            new MyViewModel { ExpirationDate = DateTime.Now.AddDays(90) },
        };
        return View(model);
    }
}

查看:

@using MvcContrib.UI.Grid
@using MvcContrib
@model IEnumerable<MyViewModel>

@(Html
    .Grid(Model)
    .Columns(column => {
        column.For(m => m.ExpirationDate);
    })
    .Attributes(@class => "grid")
    .RowAttributes(m => new Hash(@class => (m.Item.ExpirationDate.Value.AddDays(-60) < DateTime.Now) ? "warning" : "" ))
)

您也可以写你的模型的扩展方法:

You could also write an extension method for your model:

public static class RowAttributesExtensions
{
    public static Hash GetRowAttributes(this MyViewModel model)
    {
        return new Hash(@class => (model.ExpirationDate.Value.AddDays(-60) < DateTime.Now) ? "warning" : "");
    }
}

和则:

@(Html
    .Grid(Model)
    .Columns(column => {
        column.For(m => m.ExpirationDate);
    })
    .Attributes(@class => "grid")
    .RowAttributes(m => m.Item.GetRowAttributes())
)

这使得它更具有可读性。

which makes it more readable.

这篇关于添加CSS类MVCContrib格排的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆