Je suppose que vous essayez d'appeler addJSONData
méthode avant la grille sera créée à l'égard de jQuery("#projectList").jqGrid({...});
L'utilisation de addJSONData
est pratiquement toujours inutile (voir un de mes premiers messages sur le sujet here). De la même manière, vous ne devriez jamais utiliser la méthode eval
qui est mauvaise. On utilise jQuery.parseJSON ou JSON.parse à la place. Je suppose que vous devriez utiliser datatype: 'json'
pour résoudre votre problème. Vous devriez poster plus de code pour vous montrer comment vous devriez utiliser les autres options de jqGrid dans votre cas.
MISE À JOUR: De votre question précédente, il semble que vous voulez simplement envoyer des données supplémentaires au serveur à partir du formulaire en cliquant sur le bouton "Rechercher". Dans le cas, je vous suggère de modifier le code à ce qui suit
var $grid = $("#projectList");
$grid.jqGrid({
url: 'user595234.json',
datatype: "json",
serializeGridData: function (data) {
return $.param(data) + '&' + $("#project_search_form").serialize();
},
jsonReader: {id: "projectId", repeatitems: false},
colNames: ['ID', 'Name'],
colModel: [
{name: 'projectId', width: 255},
{name: 'name', width: 255}
],
rowNum: 10,
rowList: [10,20,30],
pager: '#projectPager',
sortname: 'projectId',
viewrecords: true,
sortorder: "desc",
caption: "Simple data manipulation",
height: "auto"
}).jqGrid("navGrid", "#projectPager", {edit: false, add: false, del: false});
$("#search").click(function() {
$grid.trigger("reloadGrid", [{page: 1}]);
});
Dans the demo Je viens d'obtenir la forme de l'exemple de l'utilisation jQuery.serialize et le modifier un peu. Il affiche les données dont vous avez besoin
De plus, comme vous pouvez le vérifier facilement en ce qui concerne des Fiddler ou Firebug, l'URL ba jointe avec des paramètres supplémentaires comme ci-dessous
...?_search=false&nd=1336057299806&rows=10&page=1&sidx=projectId&sord=desc&a=1&b=2&c=3&d=4&e=7&f=8
Les paramètres standards
_search=false&nd=1336057299806&rows=10&page=1&sidx=projectId&sord=desc
sera ajouté avec les paramètres de la forme
a=1&b=2&c=3&d=4&e=7&f=8
Dans certains scénarios, on peut utiliser alternativement jQuery.serializeArray. Il permet de sérialiser les données dans un autre format (comme JSON) ou convertir les données dans un autre format (voir here) qui peut être facilement fusionné avec les paramètres jqGrid standard en utilisant $.extend.
plus de détails est ici http://stackoverflow.com/questions/10393256/jqgrid-not-display-properly – user595234
@ user595234: J'ai mis à jour ma réponse. – Oleg