Plugin jqGrid : Événements onBeforeSearch et onSearch
Aucun événement n'est rattaché à l'utilisation de la fonctionnalité de recherche dans jqGrid, ce qui m'as causé beaucoup de problèmes. J'en suis donc arrivé à un petit tour pour gérer moi-même deux nouveaux événements. Ceci sera probablement utile à des utilisateurs de jqGrid qui souhaitent personnaliser un peu plus en profondeur le fonctionnement du plugin:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| $(JQGlist).jqGrid({
[...]
loadComplete: function(data) {
[...]
//Surcharge l'événement d'appel de la fonction de recherche afin de permettre la gestion d'événements onBeginSearch et onSearch
$("#search_JQGlist").bind("click", function(e) {
var obs = $(JQGlist).jqGrid("getGridParam", "onBeginSearch");
if(obs != null) obs();
$("#fbox_JQGlist_search").unbind("click");
$("#fbox_JQGlist_search").bind("click", function(e) {
var os = $(JQGlist).jqGrid("getGridParam", "onSearch");
var data = {"searchField":$("TD.columns > SELECT").val(),"searchOper":$("TD.operators > SELECT.selectopts").val(),"searchString":$("TD.data > INPUT#jqg1").val()};
if(os != null) var proceed = os($("#searchmodfbox_JQGlist"), data);
else var proceed = true;
if(proceed) {
var url = $("#JQGlist").jqGrid("getGridParam", "url"); //Mise en mémoire de l'url standard
$("#JQGlist").trigger("reloadGrid");
$("#JQGlist").jqGrid("setGridParam", {"url":url+"&searchField="+data.searchField+"&searchString="+encodeURIComponent(data.searchString)+"&searchOper="+data.searchOper}); //Url de recherche
$("#JQGlist").jqGrid("setGridParam", {"url":url}); //Remise en place de l'url standard
return false;
}
});
});
},
onBeginSearch:function(e) {},
onSearch:function(box, data) {
[...]
return false; //Retourner false pour empêcher l'envoi de la requête normale
}
) |