Suppose I have the following data:
Name Month Expense
---------- -------------- ----------
XYZ February 10
XYZ March 50
KLM March 20
ABC April 30
Following the solution in this SO question I have been able to create a JQGrid instance that has the "Expense" value represented in columns instead of rows. For example:
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
In the colModel that I am dynamically building I am using the same index value for every
dynamically added column so every search will be redirected automatically to the Expense field.
This works like a charme :)
Unfortunately in the search dialog the users does not see a single column to filter on the Expense field but he has the opportunity to filter for the columns called respectively Expense February, Expense March and Expense April which is a little bit confusing because he thinks that is going to filter not only for the Expense property but also for the Month property.
Is there any way to instruct the jqGrid plugin to hide those unwanted labels and using only a generic field called Expense?
Thanks a lot for helping!
EDIT:
This is the generated object coming back from the first call (it contains colNames and 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", ... }
]
}
Also this is the code that create the grid
$.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 () {
[...]
}
});
