所以我没有使用texfield来过滤网格过滤器中的日期,而是添加了一个datepicker。我遇到的问题是过滤时的日期选择器正在向我的控制器发送不同的格式输出,我无法真正格式化。
它返回我的日期,如“Fri Mar 30 2018 00:00:00 GMT + 0200(Romance Summer Time)”。我希望我的过滤器做的是保持我的UI格式。 这种日期格式不适合我的应用程序,因为根据用户的地理位置,他可能有不同的日期格式标准,因此telerikui每次都会发送不同的输出。在这种情况下,我必须检查每种可能性。
网格:
@(Html.Kendo().Grid<EmployeeHistoryViewModel>()
.Name("gridEmployeeHistoryList")
.Columns(columns =>
{
columns.Bound(c => c.Action).Title(GlobalResources.Action);
columns.Bound(c => c.ActionTakenOn).Title(GlobalResources.ActionTakenOn).Filterable(f => f.UI("ANAB.Employee.employeehistoryDetail.DateTimeFilter"));
columns.Bound(c => c.Actor).Title(GlobalResources.Actor);
columns.Bound(c => c.FieldName).Title(GlobalResources.FieldName);
columns.Bound(c => c.OldValue).Title(GlobalResources.OldValue);
columns.Bound(c => c.NewValue).Title(GlobalResources.NewValue);
})
.HtmlAttributes(new { style = "height: 550px;" })
.Scrollable()
.Events(ev => ev.DataBound("ANAB.addGridIcons"))
.Selectable(selectable =>
{
selectable.Mode(GridSelectionMode.Single);
selectable.Type(GridSelectionType.Row);
})
.Filterable(filter =>
{
filter.Extra(false);
filter.Operators(op =>
{
op.ForString(str =>
{
str.Clear().Contains("Contains");
});
op.ForDate(date =>
{
date.Clear().IsEqualTo("required format: " + @ANABAppContext.GetDateFormat());
});
});
})
.Resizable(resize => resize.Columns(true))
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("GetEmployeeHistoryList", "Employee", new { employeeId = Model.Id }))
.PageSize(ANABAppContext.GetPageSize())
)
)
JS:
var DateTimeFilter = function (control) {
$(control).kendoDatePicker({
format: ANAB.Employee.employeehistoryDetail.options.dateFormat,
parseFormats: ANAB.Employee.employeehistoryDetail.options.dateFormat,
});
}