У меня есть представление Backgrid на моей странице с набором данных. Над представлением Backgrid есть другое представление под названием «фильтры», которое позволяет пользователю изменять диапазон дат для данных, чтобы они могли видеть результаты между двумя датами.Как обновить таблицу Backgrid новыми данными?
Я не уверен, что самый чистый способ - обновить содержимое вида Backgrid. Вот мой код, как он стоит:
// Fetch data
var fetchingOrders = CRM.request("orders:entities");
// Create layout
var ordersLayout = new List.OrdersLayout();
$.when(fetchingOrders).done(function (orders) {
var ClickableRow = Backgrid.Row.extend({
events: {
"click" : "rowClicked"
},
rowClicked: function() {
CRM.trigger("order:show", this.model.get("RecordID"));
}
});
var customersListView = new Backgrid.Grid({
row: ClickableRow,
columns: CRM.settings.columns.orders,
collection: orders,
className: "simple-table backgrid"
});
var filters = new List.Filters({});
filters.on("orders:filter", function (startdate, enddate) {
});
ordersLayout.on("show", function() {
ordersLayout.filters.show(filters);
ordersLayout.backgrid.show(customersListView);
});
CRM.mainRegion.show(ordersLayout);
});
CRM.request("orders:entities")
линия использует эту функцию:
getOrders: function (startdate, enddate) {
var orders = new Entities.Orders();
var defer = $.Deferred();
orders.fetch({
data: {
action: "search",
dateRangeColumn: "RecordDate",
startDate: startdate || "2013-11-06",
endDate: enddate || "2013-11-06",
// startDate: startdate || Utilities.currentDate,
// endDate: enddate || Utilities.currentDate
},
success: function (data) {
defer.resolve(data);
},
error: function (collection, response, options) {
console.log(response);
console.log("Error loading Orders…");
}
});
return defer.promise();
},
Вы, возможно, заметили filters.on("orders:filter", function (startdate, enddate) {
блок. Я запускаю это в любое время, когда пользователь меняет дату начала или окончания в представлении filters
, но я не уверен, что делать дальше, потому что мне по существу нужно повторно запустить весь вышеуказанный код в качестве настройки.
Предложения? Благодаря!