Eh bien, je me tape la tête contre le mur avec celui-ci parce que j'ai utilisé jqgrid dans de nombreuses applications et le code similaire fonctionne dans tous les autres cas, mais cela! Voici le code ...jqgrid filterToolbar ne fonctionne pas
var pfct = $("#pfc_table");
pfct.jqGrid({
url: 'costs',
datatype: 'json',
'postData': JSON.stringify(getConds()),
mtype: 'POST',
colNames:['Id','Name','Formula','Conditions'],
colModel :[
{name:'id', index:'id', width:40, search:true},
{name:'name', index:'name', width:130, search:true},
{
name:'formula', index:'formula',width:310, search:true,
formatter : function(value, options, rData){
return value.substring(value.indexOf('=')+1);
}
},
{name:'conditionstr', index:'conditionstr', width:160,search:true}
],
jsonReader: {
repeatitems:false,
root: function (r) { return r.data.rows; },
page: function (r) { return r.data.currpage; },
total: function (r) { return r.data.totalpages; },
records: function (r) { return r.data.totalrecords; }
},
gridComplete: function() {
},
gridview: true,
height: 'auto',
autowidth: true,
pager: '#pfc_pager',
rowNum:25,
viewrecords: true,
loadonce: true,
ignoreCase: true,
multiselect: false,
pagination: true
});
pfct.navGrid('#pfc_pager',{edit:false,add:false,del:false,search:false,refresh:false});
pfct.jqGrid('filterToolbar',{stringResult: true,searchOnEnter: false});
Les données JSON je suis envoyais ont quelques propriétés supplémentaires qui ne sont pas définies dans le colmodel mais cela n'a jamais été un problème dans le passé. Le tri local et la pagination fonctionnent bien, mais pas le filtrage! Pour mémoire c'est ce que les données ressemble à:
{"data":{"totalpages":1,"currpage":1,"totalrecords":10,"rows":[{"name":"Test","id":18195,"level":0,"currency":"EUR","default":true,"formula":"f_18195()=110","ownerId":1,"categoryName":"Test cat","parentId":0,"rebate":0,"portDues":true,"modified":1310036286000,"conditionstr":"Condition 1, Condition 2"}],"userdata":null},"status":true,"responseError":null}
Voulez-vous dire que le filtrage dans la colonne 'nom' ne fonctionne pas ou que vous avez un problème avec le filtrage dans toutes les colonnes? Que fait la fonction 'getConds'? Pourriez-vous poster le code de 'getConds' ou essayer si vous avez un problème avec le filtrage si vous supprimez '' postData ': JSON.stringify (getConds())'? – Oleg
Le filtrage ne fonctionne sur aucune colonne. getConds() crée un objet javascript simple qui a un tableau d'entiers et qui fonctionne bien (le serveur l'analyse et renvoie les résultats correspondants). Je vais essayer de supprimer cela mais je doute qu'il a quelque chose à voir avec ça. Quelque chose d'autre que j'ai remarqué est que si j'essaye d'effectuer un tri sur une colonne de façon préméditée (tri par défaut) cela ne fonctionne pas mais ça marche après (en cliquant sur cette colonne). En outre, si je tape quelque chose sur l'une des zones de texte du filtre, le tri par défaut est appliqué mais rien n'est filtré. Je suppose que je vais utiliser la source de jqgrid et déboguer – nvrs
Hmm, j'ai essayé avec des données locales et il fonctionne maintenant comme il se doit. Il n'y a pas de différence dans les données réelles et les seuls changements dans la définition de la table ont à voir avec les données étant maintenant locales. Wierd ... – nvrs