获取包含Jqgrid参数的当前URL

5

我希望获取JqGrid向我的ajax服务发送的最后一个请求的完整URL,包括页面、每页记录数、搜索参数等。

是否有JqGrid API内的方法或一组方法可以实现这一目标?

3个回答

8

jqGrid不会在某个地方保存附加有所有参数的完整URL。因此,在jqGrid API中存档这一点是不可能的。

要查看完整的URL,您可以使用FirebugFiddler或其他类似的工具。

通常情况下,人们都知道如何构建URL。从间接的理解来看,您想使用HTTP GET(mtype:“GET”)。我将在HTTP GET的情况下解释URL的构建。

GET请求的完整URL将从以下内容构建:

  • jqGrid的url参数
  • jqGrid的postData参数
  • 一些附加参数取决于所使用的操作(第一个网格加载、数据搜索、解析等)。这些附加参数的名称可以通过jqGrid的prmNames参数进行更改(请参见http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options#how_to_overwrite_global_options)。例如,如果您定义了prmNames:{sort:"searchIndex",order:"searchDirection",search:null,nd:null},那么参数sidxsord将被重命名为searchIndexsearchDirection。参数_searchnd将不会发送。

以下是一些典型的URL:

  1. 基础网址?_search=false&nd=1250348761396&rows=20&page=1&sidx=&sord=asc
  2. 基础网址?_search=false&nd=1250348761396&rows=20&page=1&sidx=Name&sord=asc
  3. 基础网址?_search=true&rows=10&page=1&sidx=Name&sord=asc&searchField=Manufacture &searchString=Micro&searchOper=bw

第一个URL请求加载第一页数据,每页20行,不排序。第二个URL按 Name 进行排序。第三个URL包含数据过滤(使用simple searching),基于筛选器“ManufactureMicro开头”,并按Name进行排序。结果每页显示10行数据,请求第一页。

如果使用高级搜索工具栏搜索而不是简单搜索, 那么URL看起来会有点不同。所有内容都在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs中有详细说明。请注意,URL中使用的参数应进行编码。因此,如果您想像自己构建URL一样进行操作。
"baseUrl?firstName=" + myFirstName + '&lastName=' + myLastName

您应该不要忘记使用encodeURIComponent函数来编码myFirstNamemyLastName。您可以使用jQuery.param(请参见为什么我的搜索代码在Internet Explorer上无法工作),或者更好地使用jqGrid的postData参数(请参见重新加载时jqGrid不更新数据如何在不使用内置搜索/过滤框的情况下过滤jqGrid数据)。在最后一种情况下,如果需要,将在URL中插入符号“?”和“&”,并且所有数据值都将根据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);

对我来说,上述内容已经包含了我需要的所有内容,包括搜索工具栏中的项目(如果使用)。?myextraparam=something应该替换为您想要传递的任何额外参数。


0
这是简单的答案。JQGrid 会附加到您的查询字符串中。
url: "/CaseManagement/Shipping/GetLastShipments?StudentID=" + GetSelectedStudentID(),

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接