2010-08-20 11 views

Répondre

8

jqGrid ne pas enregistrer quelque part l'URL complète ajoutée avec tous les paramètres. Il est donc pas possible e dans l'archive API jqGrid cela.

Pour voir l'URL complète, vous pouvez utiliser Firebug, Fiddler ou un autre outil de fermeture.

En général, il est bien connu comment l'URL sera construite. Comment je comprends indirectement que vous voulez utiliser HTTP GET (mtype: "GET"). J'explique la construction de l'URL en cas de HTTP GET.

L'URL complète des demandes GET sera construit à partir de:

  • url paramètre du paramètre jqGrid
  • postData des jqGrid
  • quelques paremeters supplémentaires qui dépendent de l'action utilisée (première charge de la grille , recherche de données, parage et ainsi de suite). Les noms de ces paramètres supplémentaires peuvent être modifiés par le paramètre prmNames de jqGrid (voir http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options#how_to_overwrite_global_options). Par exemple, si vous définissez prmNames: {sort: "searchIndex", order: "searchDirection", search: null, nd: null}, les paramètres sidx et sord seront renommés searchIndex et searchDirection. Les paramètres _search et nd ne seront pas envoyés.

Ci-dessous vous trouverez quelques urls typiques:?

  1. baseurl _search = false & nd = 1250348761396 & rangs = 20 & page = 1 & Sidx = & sord = asc
  2. baseurl _search = faux & nd = 1250348761396 & rangs = 20 & page = 1 & Sidx = Nom & sord = asc
  3. baseurl? _search = true & lignes = 10 & page = 1 & Sidx = Nom & sord = asc & Searchfield = Fabrication & searchString = Micro & searchOper = pc

La première demande url chargement de la première page de données, 20 lignes par page, pas de tri. La deuxième URL a le tri par Name. Le troisième URL contient le filtrage de données (avec simple searching) basé sur le filtre "Manufacture commence par Micro" et le tri par Name. Les résultats sont paginés par 10 lignes par page et la première page est demandée.

En cas d'utilisation Advanced Searching ou Toolbar Searching au lieu de Simple Searching l'URL ressemblera à un autre. Tous les événements sont documentés sous http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs.Si vous avez d'autres questions, je vais vous expliquer plus en détail.

Il est important de comprendre que les paramètres utilisés dans l'URL doivent être codés. Donc, si vous voulez url cunstruct vous comme

"baseUrl?firstName=" + myFirstName + '&lastName=' + myLastName 

vous devriez ne pas oublier d'utiliser la fonction encodeURIComponent pour encoder myFirstName et myLastName. Au lieu de cela, vous pouvez utiliser jQuery.param (voir why my search code does not work on internet explorer) ou mieux utiliser le paramètre postData du jqGrid (voir jqgrid not updating data on reload et How to filter the jqGrid data NOT using the built in search/filter box) Dans les derniers cas, les symboles '?' Et '&' seront insérés dans l'URL si nécessaire et toutes les données les valeurs seront codées par rapport de encodeURIComponent

5

J'ai eu un besoin similaire et a résolu le problème avec ceci:.

var myUrl = jQuery("#grid").jqGrid('getGridParam', 'url'); 
myUrl += "?myextraparam=something"; 
var postData = jQuery("#grid").jqGrid('getGridParam', 'postData'); 
$.each(postData, function(key, value) { 
    myUrl += "&"+key+"="+encodeURIComponent(value); 
}); 
//alert(myUrl); 

Pour moi, ce qui précède a obtenu tout ce que je avais besoin, y compris les éléments de la barre d'outils de recherche si elle est utilisée le. ?myextraparam=something doit être remplacé par tous les paramètres supplémentaires que vous voulez passer

0

Voici la réponse simple. JQGrid ajoutera à vos chaînes de requête.

url: "/CaseManagement/Shipping/GetLastShipments?StudentID=" + GetSelectedStudentID(),