Пользовательский фильтр Kendo Grid на дату - PullRequest
0 голосов
/ 26 июня 2018

Я видел пару примеров кода, как это сделать, но ни одного в том формате, который я ищу. Я пытался конвертировать их сам, но безуспешно. То, что я пытаюсь сделать, - это создать собственный фильтр строк, который даст вам количество вариантов, которые можно использовать в определенный день.

columns.Bound(cc => cc.StartDate).Width(160)
   .HeaderHtmlAttributes(new { title = "startdate") })
   .Title("startdate"))
   .Filterable(ftb => ftb.Extra(false)
   .Operators(op => op.ForDate(d => d
   .IsEqualTo("At date")
   .IsLessThan("Before date")
   .IsGreaterThan("After date"))));

В приведенном выше коде я пытаюсь использовать параметры фильтра, чтобы пользователь мог фильтровать события до, в и после определенной даты. Было бы неплохо, если бы эти параметры действительно отображались, а еще лучше, если бы пользователь мог использовать средство выбора даты кендо.

Итак, мой вопрос: что я делаю неправильно, что я не вижу правильных опций и как я могу получить средство выбора даты в фильтре?

1 Ответ

0 голосов
/ 27 июня 2018

Вам необходимо указать тип данных столбца как datetime . Если вы используете MVC, в своей модели вы добавляете DataType.Date над свойством DatePicker на тот случай, если вам нужен только datepicker, а не datetimepicker, как показано ниже:

[DataType(DataType.Date)]
public DateTime StartDate{ get; set; }

Примечание: добавьте ссылку на System.ComponentModel.DataAnnotations, если она не включена в ваш заголовок.

Затем укажите в фильтре, что пользовательский интерфейс будет пиковым датчиком

filterable: {
             ui: "datetimepicker"
            }
*

OR * 1011

columns.Bound(c => c.StartDate).ClientTemplate("#= kendo.toString(kendo.parseDate(StartDate), 'MM/dd/yyyy HH:mm:ss') #")
 .Filterable(ftb => ftb.Cell(cell => cell.Template("DateTimeFilter")));

вот пример кода, на который вы можете ссылаться. В этом примере есть столбец для даты рождения, на который вы можете ссылаться.

Демо - образец

В вашем случае это будет похоже на

columns.Bound(cc => cc.StartDate).Width(160)
   .HeaderHtmlAttributes(new { title = "startdate") })
   .Title("startdate"))
   .Filterable(ftb => ftb.Extra(false)
       .Cell(cell => cell.Template("DateTimeFilter"))
       .Operators(op => op.ForDate(d => d
       .IsEqualTo("At date")
       .IsLessThan("Before date")
       .IsGreaterThan("After date"))));

Надеюсь, это поможет вам.

...