GridMvc中的时间过滤器

时间:2014-10-10 07:02:25

标签: c# asp.net-mvc-4 mvcgrid

我没有正确过滤时间,它显示日历而不是时间。但是,只有在选择日期过滤器时才会显示日历。下面是我的视图的代码我也附加了图像。 我从以下链接下载了示例源代码 https://gridmvc.codeplex.com/

查看

@using GridMvc.Html
@using GridMvc.Sorting
@model IEnumerable<GridMvc.Site.Logging>

@Html.Grid(Model).Named("ordersGrid").Columns(columns =>
{
    /* Adding "OrderID" column: */

    columns.Add(o => o.ID)
           .Titled("Number")
           .SetWidth(100);
    columns.Add(o => o.DateTime, "Date")
            .Titled("Date")
            .SortInitialDirection(GridSortDirection.Descending)
            .Format("{0:dd/MM/yyyy}")
            .SetWidth(110);
    columns.Add(o => o.DateTime, "Time")
            .Titled("Time")
            .SortInitialDirection(GridSortDirection.Descending)
            .Format("{0:hh:mm tt}")                
            .SetWidth(110);        
    columns.Add(o => o.Type)
           .Titled("Type")
           .SetWidth(150)
           .ThenSortByDescending(o => o.ID);
           //.SetFilterWidgetType("CustomCompanyNameFilterWidget");
    columns.Add(o => o.Description)
           .Titled("Description")
           .SetWidth(250);
    columns.Add(o => o.Reference)
            .Titled("Reference")
            .SetWidth(150)
            .Css("hidden-xs"); //hide on phones
    columns.Add(o => o.Response)
            .Titled("Response")
            .SetWidth(150)
            .Css("hidden-xs"); //hide on phones        


}).WithPaging(15).Sortable().Filterable().WithMultipleFilters()

enter image description here

2 个答案:

答案 0 :(得分:0)

先生,没有针对此数据类型的过滤时间的功能。 Grid.Mvc支持几种类型的列(在Add方法中指定):

System.String
System.Int32
System.Int64
System.Boolean
System.DateTime
System.Decimal
System.Byte
System.Double
System.Single

https://gridmvc.codeplex.com/wikipage?title=Filtering

答案 1 :(得分:0)

可能为时已晚,但看起来您可以创建自定义过滤器:

https://gridmvc.codeplex.com/wikipage?title=Creating%20custom%20filter%20widget&referringTitle=Filtering(CodePlex正在消失,但文档中说只保留了一个只读存档)

默认的DateTime小部件接受时间(例如grid-filter=OccurredAt__5__2017-05-17+17%3a20%3a00大于2017年5月17日17:20:00),但不显示它们的选择器,因此您可以继承或复制/粘贴默认的DateTime渲染,然后只添加一个新的JavaScript小部件。

还有相当大的工作要做。