获取包含Jqgrid参数的当前url

时间:2010-08-20 01:40:23

标签: javascript url parameters jqgrid

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

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

3 个答案:

答案 0 :(得分:8)

jqGrid 不保存某处附加了所有参数的完整网址。因此,在jqGrid API存档中不可能 e。

要查看完整网址,您可以使用FirebugFiddler或其他关闭工具。

一般来说,众所周知如何构建网址。我如何间接理解你想要使用HTTP GET(mtype: "GET")。我在HTTP GET的情况下解释了URL的构造。

GET请求的完整URL将构建于:

  • url jqGrid的参数
  • postData jqGrid的参数
  • 一些额外的参数,取决于所使用的动作(第一次网格加载,数据搜索,配对等)。可以通过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将不会发送。

下面是一些典型的网址:

  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
  4. 第一个网址请求加载第一页数据,每页20行,不进行排序。第二个网址按Name排序。第三个网址包含基于过滤器“ManufactureMicro开头”并按Name排序的数据过滤(simple searching)。结果每页分页10行,并请求第一页。

    如果使用Advanced SearchingToolbar Searching代替Simple Searching,则网址看起来会像其他一样。 Everithing记录在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs之内。如果你还有其他问题我可以解释得更详细。

    重要的是要了解URL中使用的参数应该被编码。因此,如果您想要 cunstruct url ,请

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

    您不应忘记使用encodeURIComponent函数对myFirstNamemyLastName进行编码。相反,您可以使用jQuery.param(请参阅why my search code does not work on internet explorer)或更好地使用jqGrid的postData参数(请参阅jqgrid not updating data on reloadHow to filter the jqGrid data NOT using the built in search/filter box。在最后一种情况下使用符号如果需要,“?”和“&”将插入到网址中,并且所有数据值都将根据encodeURIComponent进行编码。

答案 1 :(得分: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应替换为您要传递的任何额外参数。

答案 2 :(得分:0)

这是一个简单的答案。 JQGrid将附加到您的查询字符串。

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