2012-12-04 4 views
2

J'ai un jqGrid avec le type de données json et loadOnce: true. J'utilise la recherche filterToolBar. Il ne retourne pas tous les matchs. La grille contient une colonne consultable appelée Nom et a des valeurs "Adkins, Joe" et "Adkinson, Jane". Si je tape dans la chaîne de recherche "Adk", la seule correspondance renvoyée est "Adkins, Joe".FilterToolBar ne retourne pas tous les résultats

Voici la définition de la grille:

function loadmyGrid(dataUrl, selectUrl) { 
$("#myGrid").jqGrid({ 
    url: dataUrl + "?r=" + rand(), 
    datatype: "json", 
    mtype: 'GET', 
    rowNum: -1, 
    loadonce: true, 
    ignoreCase: true, 
    scroll: true, 
    scrollOffset: 0, 
    gridview: true, 
    colNames: ["Employee ID", "Name", "User Name", ""], 
    colModel: [ 
       { name: "EmployeeID", width: "125", align: "center", sortable: false, resizable: false, title: false, search: false }, 
        { name: "Name", width: "150", align: "center", sortable: false, resizable: false, title: false }, 
        { name: "UserName", width: "125", align: "center", sortable: false, resizable: false, title: false, search: false }, 
        { name: "UserKey", key: true, width: "135", align: "center", sortable: false, resizable: false, title: false, formatter: selectButtonFormatter, search: false}, 
      ], 
    emptyrecords: "Nothing to display",  
    beforeSelectRow: function() { return false; }, 
    gridComplete: function() { 
     $("#myGrid").setGridHeight("100%"); 
     $("#myGrid").filterToolbar({searchOnEnter: false, defaultSearch: "cn" }) 
    } 
}) 

Répondre

0

Votre erreur principale est l'utilisation de rowNum: -1 ce qui est faux. Si vous souhaitez empêcher la pagination locale des données, vous devez utiliser une valeur suffisamment grande de rowNum. Par exemple rowNum: 1000 ou rowNum: 10000.

Je vous recommande en outre de remplacer $("#myGrid") à l'intérieur de tout rappel (par exemple gridComplete) à $(this). L'utilisation de "?r=" + rand() une partie du url me semble inutile. L'appel de $("#myGrid").filterToolbar vous devez vous déplacer en dehors de gridComplete car il ne peut être appelé qu'une seule fois. Je recommande d'utiliser column templates. Il peut réduire le code et le rendre plus gérable et plus lisible.

+0

Merci Oleg! Le paramètre rowNum a résolu le problème de recherche. Je vais également mettre en œuvre vos recommandations supplémentaires. – MLS

+0

@MLS: Vous êtes les bienvenus! – Oleg

Questions connexes