Я считаю, что вам не нужно иметь событие после поиска.При каждом поисковом запросе данные в сетке будут перезагружаться.Таким образом, вы можете использовать такие события, как beforeRequest
, loadBeforeSend
, serializeGridData
, gridComplete
или loadComplete
.
. Из вашего примера заголовка я могу предположить, что вы используете «Расширенный поиск».Я хочу продемонстрировать только основную идею возможного решения, поэтому я выбрал loadComplete
для реализации изменения захвата:
jQuery('#list').jqGrid({
// ...
loadComplete: function(data) {
var postData = jQuery('#list').getGridParam("postData");
var newCapture = "Title";
if (postData._search === true && typeof postData.filters !== "undefined") {
var filters = jQuery.parseJSON(postData.filters);
newCapture = "Title: [";
var rules = filters.rules;
for (var i=0; i<rules.length; i++) {
var rule = rules[i];
var op = rule.op; // the code name of the operation
if (jQuery.fn.searchFilter && jQuery.fn.searchFilter.defaults &&
jQuery.fn.searchFilter.defaults.operators) {
// find op description
var operators = jQuery.fn.searchFilter.defaults.operators;
for (var j=0; j<operators.length; j++) {
if (operators[j].op === rule.op) {
op = operators[j].text;
//op = $.jgrid.search.odata[j];
break;
}
}
}
newCapture += rule.field + " " + op + " '" + rule.data + "'";
if (i+1 !== rules.length)
newCapture += ", ";
}
newCapture += "]";
}
jQuery('#list').setCaption(newCapture);
}
});
Если вы не используете «Расширенный поиск», вам следует searchField
, searchOper
и searchString
вместо filters
для построения заголовка сетки на основе поискового кафетерия.
В настоящее время в примере я не использую локализации имен для работы, но ясно, что это можно сделать.