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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
  }
)