Я использую сетку кендо для отображения информации из модели представления. Модель представления содержит:
[DisplayName("Received Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? ReceivedDate { get; set; }
[DisplayName("Received Month")]
public string ReceivedMonth { get { return (this.ReceivedDate == null ? "" : this.ReceivedDate.Value.ToString("MMMM")); } }
Я установил сетку кендо следующим образом:
@(Html.Kendo().Grid<ViewModel>()
.Name("Grid")
.HtmlAttributes(new { style = "height:100%; width:100%;" })
.Events(events => events.DataBound("onGridDataBound").Change("onSelectionChange").Save("onGridSave"))
.Scrollable()
.Columns(columns =>
{
columns.Bound(u => u.ReceivedDate).Format("{0:dd/MM/yyyy}").Filterable(c => c.Cell(y => y.Template("datePicker"))).Width("200px");
columns.Bound(u => u.ReceivedMonth)
.Title("Received Date<br/>Month")
})
.NoRecords("No Records to Display")
.Editable(editable => editable.Mode(GridEditMode.InLine))
.AutoBind(true)
.Pageable(pageable => pageable.Refresh(true).PageSizes(new[] { 10, 20, 50, 100, 200 }).ButtonCount(5))
.Sortable()
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.Reorderable(r => r.Columns(true))
.Navigatable()
.ColumnMenu()
.EnableCustomBinding(true)
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(true)
.PageSize(10)
.Model(m =>
{
m.Id(i => i.Id);
})
.Read(read => read
.Action("getData", "Data"))
.Update(update => update
.Action("updateViaGrid", "Data"))
)
)
)
Но я не могу заставить работать фильтрацию на ReceivedMonth, потому что столбец не существует в подчеркивающем источнике данных.
Я правильно подхожу к этому? У меня есть столбец с датой, и рядом с ним нужен столбец с месяцем, в котором я могу выбрать месяц, и он будет возвращать любые данные за этот месяц.
Большое спасибо