Вам не нужно уничтожить ни сетки, ни DataSource. Вместо этого поймайте любое изменение в дате и вызовите DataSource.read
.
Шаги:
- определить DateTimePicker (или просто DatePicker или календарь), в зависимости от ваших потребностей.
HTML:
<input id="date"/>
JavaScript:
var evDate = $("#date").kendoDateTimePicker({
value : new Date(),
change: function() {
ds.read();
}
}).data("kendoDateTimePicker");
- Определение DataSource для получения событий с сервера. Предположим, что
url
для обработки запроса GetEvents
, который получает в запросе аргумент date
, который является датой событий. Пример GetEvents?date=Mon+Jul+15+2013+19%3A44%3A55+GMT%2B0200+(CEST)
JavaScript:
var ds = new kendo.data.DataSource({
transport: {
read: {
url : "GetEvents.php",
data: function() {
return { "date": evDate.value() }
}
}
},
schema : {
model: {
id : "id",
fields: {
event: { type: "string" },
date : { type: "date" }
}
}
},
pageSize : 10
});
- Определить сетку, используя предыдущий DataSource:
JavaScript
var grid = $("#grid").kendoGrid({
dataSource: ds,
editable : false,
pageable : true,
columns : [
{ field: "id", width: 60, title: "#" },
{ field: "date", width: 140, title: "Date", format: "{0:yyyy-MM-dd HH:mm}" },
{ field: "event", width: 400 }
]
}).data("kendoGrid");
Так трюк образующую change
в DateTimePicker
: каждый раз, когда вы меняете дату, она вызывает событие change
, где вы вызываете grid.read()
.
Сетка transport.read
определяет в качестве аргумента (transport.read.data
) date
плюс значения считанного из DateTimePicker
.
Пожалуйста, не создавайте и не разрушайте сетки. Если структура Grid всегда одна и та же, как кажется из описания вашей проблемы, просто измените условия фильтрации в источнике данных, связанном с сеткой.Он намного быстрее, меньше потребляет память и в основном намного проще программировать. – OnaBai
Так что я должен «уничтожить» его внутренний источник данных? ... Как это сделать ... как получить доступ к внутреннему источнику данных? – Tuthmosis
Чтобы получить доступ к источнику данных, вы можете сделать «$ (« # grid »). Data (« kendoGrid »). DataSource', но опять же, нет, не уничтожайте ничего, просто измените условие фильтрации или перечитайте dataSource. Как вы получаете данные с сервера? Не могли бы вы показать свое определение сетки и данных? Затем я могу показать вам, как это сделать с вашим кодом. Отредактируйте исходное сообщение для его включения. – OnaBai