Еще нет встроенного триггера runat / cron.
На данный момент лучшим вариантом является использование внешней службы для запуска функции HTTP периодически. См. Этот пример в functions-samples repo для получения дополнительной информации.
Я также очень рекомендую прочитать это сообщение в блоге Firebase: Как планировать (Cron) Работы с Облачные функции для Firebase и этого видео: Функции временного облака для Firebase с использованием HTTP-триггера и Cron .
Я не уверен, но я полагаю, что источником вашей первой проблемы может быть смешение свойств postData.filters
и postData
и использования filter
вместо фильтров``. Вы используете
postfilt = $("#status").jqGrid('getGridParam', 'postData').filter;
, чтобы получить свойство filter
вместо filters
. Вы получаете значение undefined
. Поэтому настройка postData
на postfilt
ничего не значит.
Следующая проблема заключается в том, что ответ сервера содержит нефильтрованные данные. Чтобы принудительно фильтровать данные локально , вам необходимо перезагрузить сетку один раз после завершения загрузки с сервера. Вы можете сделать это внутри loadComplete
. Именно здесь вы можете установить postData.filter
, если необходимо, установить search: true
и инициировать перезагрузку события. Важно сделать это один раз, чтобы не было рекурсии, и вы не должны устанавливать datatype
в "json"
в этом случае. datatype
будет изменен на "local"
и конец загрузки с сервера в случае использования опции loadonce: true
. Если вы хотите применить фильтрацию локально , вам необходимо перезагрузить сетку один раз с помощью опций datatype: "local", search: true
и postData
, имеющих filters
, определяющих фильтр, который необходимо применить. См. Код из ответа или другого , который делает другие вещи, но код, который вам нужен, будет очень близок.
Большое спасибо !!!!
Я добавил немного вашего решения, чтобы сохранить номер страницы:
loadComplete: function () {
var $this = $(this);
var postfilt = $this.jqGrid('getGridParam', 'postData').filters;
var postsord = $this.jqGrid('getGridParam', 'postData').sord;
var postsort = $this.jqGrid('getGridParam', 'postData').sidx;
var postpage = $this.jqGrid('getGridParam', 'postData').page;
if ($this.jqGrid("getGridParam", "datatype") === "json") {
setTimeout(function () {
$this.jqGrid("setGridParam", {
datatype: "local",
postData: { filters: postfilt, sord: postsord, sidx: postsort },
search: true
});
$this.trigger("reloadGrid", [{ page: postpage}]);
}, 25);
}
}