我创建了一个包含以下列定义的ng-grid:
columns: [
{ field: "CompanyPkid", visible: false },
{ field: "CompanyName", visible: false },
{ field: "StartDate", visible: false, cellFilter: "date:'yyyy-MM-dd'" },
{ field: "CompanyId",
displayName: "Company ID",
cellTemplate: "<div class=\"ngCellText\" ng-class=\"col.colIndex()\">"+
"<a href=\"Company/Edit/{{row.getProperty('CompanyPkid')}}\">"+
"{{row.getProperty(col.field)}}"+
"</a><br />"+
"{{row.getProperty('CompanyName')}}<br />"+
"{{row.getProperty('StartDate')}}"+
"</div>",
}],
其中一列是隐藏日期列。
其中一列使用模板并包含隐藏日期列中的值。
我想将多行列中的日期格式化为yyyy-MM-dd
。这可能吗?如果是这样,怎么样?
答案 0 :(得分:10)
使用date
过滤器,如下所示:
{{row.entity.StartDate | date:'yyyy-MM-dd'}}
答案 1 :(得分:1)
我遇到了上述方法的问题。如果您对列使用过滤或排序,它们仍然对字段值中的时间戳或Date对象进行操作,而不是在cellTemplate中使用过滤器的结果。因此,用户可以输入&#34; 03&#34;在列过滤器中,但看到像&#34; 12/31/2005&#34; - 03在时间戳中,没有显示。
我找到的解决方案是在columnDef对象中使用cellFilter:'date:"MM/dd/yyyy"'
。这样可以保留排序和过滤,同时允许您显示日期。感谢Victor:http://www.victorshi.com/blog/post/How-to-format-a-datetime-column-in-ng-grid