仅显示日期格式并在 MVCContrib Grid 中继续对 AZ 进行排序

Posted

技术标签:

【中文标题】仅显示日期格式并在 MVCContrib Grid 中继续对 AZ 进行排序【英文标题】:Show date format only and keep sorting AZ in MVCContrib Grid 【发布时间】:2012-03-29 11:08:41 【问题描述】:

我使用以下 LINQ 创建网格模型:

...
            var query = from a in GetUser()
                        select new UserModel
                        
                            ID = a.ID,                            
                            StartDate = a.StartDate,
                            EndDate = a.EndDate,
                            StateName = a.State.StateName,
                            StateID = a.StateID,
                            City = a.City,
                        ;
            return query;
  ....

html

 @Html.Grid(Model.PagedList).Columns(
                        col =>
                        
                            col.For(c => c.StateName).Named("State").Attributes(@class => "row").HeaderAttributes(@class => "head");
                            col.For(c => c.City).Named("City").Attributes(@class => "row").HeaderAttributes(@class => "head");
                            col.For(c => c.StartDate).Named("Start Date").Attributes(@class => "row").HeaderAttributes(@class => "head");
                            col.For(c => c.EndDate).Named("End Date").Attributes(@class => "row").HeaderAttributes(@class => "head");
                            col.For(c => Html.ActionLink("Details", "Details", new  id = c.ID )).Named("View Details").HeaderAttributes(@class => "head").DoNotEncode();
                        ).Sort(Model.GridSortOptions).Attributes(@class => "grid") 

主要问题是如何只显示 DATE 而没有 TIME 部分?

我尝试了一些选项,但在某些情况下我得到了错误,在其他情况下排序 AZ 根本不起作用。

有什么线索吗? 谢谢!!!

【问题讨论】:

试试看这个帖子***.com/questions/4679352/… 【参考方案1】:

尝试使用

col
.For(c => c.EndDate.ToLongDateString())
.Named("End Date")
.Attributes(@class => "row")
.HeaderAttributes(@class => "head");

【讨论】:

【参考方案2】:

我发现比较容易的是列上的 Format 方法。 see docs here

所以你的代码看起来像这样:

col.For(c => c.EndDate).Format("0:d")
//use .Format("0:yyyy-MM-dd") to get 2014-10-21

如果你想使用 ToShortDateString 那么你需要定义列名以及排序列名,例如:

 col.For(c => c.EndDate.ToShortDateString())
    .Named("End Date")
    .SortColumnName("EndDate");

【讨论】:

以上是关于仅显示日期格式并在 MVCContrib Grid 中继续对 AZ 进行排序的主要内容,如果未能解决你的问题,请参考以下文章

MVCContrib Grid - 如何使用 ajax 添加和删除行?

MVCContrib 网格 - 选择行

使用 MvcContrib Grid 之类的东西是在代码可读性方面倒退了一步吗? [关闭]

如何在 AG-Grid 中配置日期渲染格式

按日期订购多张发票并在公司表中,但仅显示公司列表

如何更改 ag-grid 日期过滤器占位符格式