【问题标题】:MVCContrib Html.Grid - how to set the colour of a row?MVCContrib Html.Grid - 如何设置一行的颜色?
【发布时间】:2011-07-15 14:14:00
【问题描述】:

我在部分视图中有以下代码;

        <%= Html.Grid(Model).Columns(column =>
            {
                column.For(model => model.Date).Format("{0:d}");
                column.For(model => model.DayAmount);
                column.For(model => model.LeaveType);
            })
            %></div>
        <p><%= Html.Pager((IPagination)Model)%></p></div>

最新的要求是根据休假类型设置行的颜色。 所以我打算在数据表中添加一个颜色列,比如 LeaveRowColour。 当我在 MVCContrib 上进行谷歌搜索时,我注意到也许我应该使用 RowAttributes 属性来设置它。但我不清楚如何做到这一点,或者我是否应该找到其他解决方案。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您可以编写自定义 HTML 帮助程序来确定要应用的 CSS 类:

    public static class HtmlExtensions
    {
        public static string GetLeaveTypeCss(this HtmlHelper html, string leaveType)
        {
            if (leaveType == "Type 1")
            {
                return "t1";
            }
            else if (leaveType == "Type 2")
            {
                return "t2";
            }
    
            return "defaultType";
        }
    }
    

    然后:

    <%= Html
        .RowAttributes(model => new Hash(@class => Html.GetLeaveTypeCss(model.Item.LeaveType)))
        .Grid(Model)
        .Columns(column =>
        {
            column.For(model => model.Date).Format("{0:d}");
            column.For(model => model.DayAmount);
            column.For(model => model.LeaveType);
        })
    %>
    

    【讨论】:

    • 这当然是一个看起来不错的解决方案。但是我想在数据库表中放一个 FontColour 字段,这样如果我放一个新的 LeaveType 就不必更改程序。也就是说,看看你的解决方案和如何添加类的语法,如果我能以类似的方式设置样式,那可能不会太难。
    • @arame3333,如果你的模型上有一个属性名,它会直接包含样式,那就更简单了,你不需要助手,你可以直接使用这个属性。
    • 这就是我的想法。像 model => Hash(@style => "FontColor:" + model.item.FontColor) 之类的东西,尽管我确信语法是错误的!我需要找出在这种情况下 Hash 的全部内容。
    • @arame3333,语法有什么问题?你试过了吗:new Hash(@style =&gt; "background-color: " + model.Item.FontColor)
    • 我最终决定将整个样式放在数据字段中,这样我就可以尝试背景颜色和颜色。我认为这是最好的解决方案。您的帮助非常宝贵,非常感谢您。
    猜你喜欢
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2014-03-23
    • 2011-04-02
    • 2021-08-27
    相关资源
    最近更新 更多