获取包含Jqgrid参数的当前url

Luk*_*rey 5 javascript parameters url jqgrid

我希望得到JqGrid包含页面,每页记录,搜索参数等我的ajax服务的最后一个请求的完整URL.

JqG​​rid api中是否有任何方法或方法集合可用于实现此目的?

Ole*_*leg 8

jqGrid 不会保存附加所有参数的完整URL.因此,它不可能在jqGrid API存档中.

要查看完整的URL,您可以使用Firebug,Fiddler或其他关闭工具.

通常,众所周知如何构建URL.我间接理解你想要使用HTTP GET(mtype: "GET").我在HTTP GET的情况下解释了URL的构造.

GET请求的完整URL将由以下内容构成:

  • url jqGrid的参数
  • postData jqGrid的参数
  • 一些额外的参数取决于所使用的动作(第一次电网负载,数据搜索,配对等).可以通过prmNamesjqGrid 的参数更改此附加参数的名称(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options#how_to_overwrite_global_options).例如,如果您定义prmNames: {sort: "searchIndex", order: "searchDirection", search: null, nd: null}then参数sidx并将sord重命名为searchIndexsearchDirection.参数_searchnd不会发送.

您可以在下面找到一些典型的网址:

  1. baseURL时?_search =假ND = 1250348761396&行= 20&页= 1&SIDX =&SORD = ASC
  2. 的BaseURL?_search =假ND = 1250348761396&行= 20页= 1&SIDX =名称和SORD = ASC
  3. baseurl?_search = true&rows = 10&page = 1&sidx = Name&sord = asc&searchField = Manufacture&searchString = Micro&searchOper = bw

第一个url请求加载第一页数据,每页20行,不进行排序.第二个网址有排序依据Name.第三个网址包含基于过滤器" 开头"和排序依据的数据过滤(简单搜索).结果按页面每行10行分页,并请求第一页.ManufactureMicroName

如果使用高级搜索工具栏搜索而不是简单搜索,网址将看起来像其他一些.在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs中记录了Everithing .如果你还有其他问题我可以解释得更详细.

重要的是要理解URL中使用的参数应该被编码.所以,如果你想要cunstruct url自己喜欢

"baseUrl?firstName=" + myFirstName + '&lastName=' + myLastName
Run Code Online (Sandbox Code Playgroud)

you should don't forget to use encodeURIComponent function to encode myFirstName and myLastName. Instead of that you can use jQuery.param (see why my search code does not work on internet explorer) or better use postData parameter of the jqGrid (see jqgrid not updating data on reload and How to filter the jqGrid data NOT using the built in search/filter box. In the last case symbols '?' and '&' will be inserted in the url if it is needed and all data values will be encoded with respect of encodeURIComponent.


小智 5

我有类似的需求并用此解决了它:

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);
Run Code Online (Sandbox Code Playgroud)

对我来说,上面得到了我所需要的所有内容,包括搜索工具栏中的项目(如果使 本?myextraparam=something应与你想传递任何额外的参数来代替.