0

そこで、texfield を使用してグリッド フィルターで日付をフィルター処理する代わりに、datepicker を追加しました。私が抱えている問題は、フィルタリングの日付ピッカーが、実際にはフォーマットできない別のフォーマットの出力をコントローラーに送信していることです。

「Fri Mar 30 2018 00:00:00 GMT+0200 (Romance Summer Time)」のような日付を返します。フィルターでやりたいことは、UI からの形式を維持することです。この日付形式は私のアプリケーションには適していません。ユーザーの地理的な場所によっては、異なる日付形式の標準を持つ可能性があるため、テレリクは毎回異なる出力を送信するからです。この場合、あらゆる可能性をチェックする必要があります。

グリッド:

@(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,
    });
}
4

0 に答える 0