Предположим, у меня есть следующие данные:
Name Month Expense
---------- -------------- ----------
XYZ February 10
XYZ March 50
KLM March 20
ABC April 30
Следуя решению в этом SO вопросе Мне удалось создать экземпляр JQGrid, в котором значение "Расход" представлено в столбцах, а не в строках. Например:
Name Expense February Expense March Expense April
--------- ----------------- --------------- --------------
XYZ 30,00 50,00 0,00
KLM 0,00 20,00 0,00
ABC 0,00 0,00 30,00
В colModel
, который я динамически создаю, я использую одно и то же значение index
для каждого
динамически добавляемый столбец, поэтому каждый поиск будет автоматически перенаправлен в поле Expense
.
Это работает как шарм:)
К сожалению, в диалоговом окне поиска пользователи не видят ни одного столбца для фильтрации в поле «Расходы», но у него есть возможность фильтровать столбцы с именами соответственно Expense February
, Expense March
и Expense April
, что немного сбивает с толку, потому что он думает, что собирается фильтровать не только для свойства Expense
, но и для свойства Month
.
Есть ли способ указать плагину jqGrid скрыть эти нежелательные метки и использовать только общее поле с именем Expense
?
Большое спасибо за помощь!
EDIT:
Это сгенерированный объект, возвращающийся после первого вызова (он содержит colNames и colModel)
{
"ColNames":[
"Name", "Expense February", "Expense March", "Expense April"
],
"ColModel":[
{ "name":"Name", "index":"Name", ... },
{ "name":"Expense1", "index":"Expense", ... },
{ "name":"Expense2", "index":"Expense", ... },
{ "name":"Expense3", "index":"Expense", ... }
]
}
Также это код, который создает сетку
$.ajax({
url: 'http://server/GetColumns',
type: "post",
dataType: "json",
data: JSON.stringify({ }),
contentType: "application/json; charset=utf-8",
async: false,
success: function (result) {
if (result) {
var colM = result.ColModel;
var colN = result.ColNames;
grid.jqGrid('GridUnload');
grid.jqGrid({
url: 'http://server/GetData',
datatype: 'json',
mtype: 'post',
colModel: colM,
colNames: colN,
[other params here]
})
}
},
error: function (xhr, ajaxOptions, thrownError) {
[...]
},
complete: function () {
[...]
}
});