我希望获得JqGrid包含页面,每页记录,搜索参数等的最后一次请求到我的ajax服务的完整URL。
JqGrid api中是否有任何方法或方法集合可用于实现此目的?
答案 0 :(得分:8)
jqGrid 不保存某处附加了所有参数的完整网址。因此,在jqGrid API存档中不可能 e。
要查看完整网址,您可以使用Firebug,Fiddler或其他关闭工具。
一般来说,众所周知如何构建网址。我如何间接理解你想要使用HTTP GET(mtype: "GET"
)。我在HTTP GET的情况下解释了URL的构造。
GET请求的完整URL将构建于:
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}
,则参数sidx
和sord
将重命名为searchIndex
和searchDirection
。参数_search
和nd
将不会发送。下面是一些典型的网址:
第一个网址请求加载第一页数据,每页20行,不进行排序。第二个网址按Name
排序。第三个网址包含基于过滤器“Manufacture
以Micro
开头”并按Name
排序的数据过滤(simple searching)。结果每页分页10行,并请求第一页。
如果使用Advanced Searching或Toolbar Searching代替Simple Searching,则网址看起来会像其他一样。 Everithing记录在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs之内。如果你还有其他问题我可以解释得更详细。
重要的是要了解URL中使用的参数应该被编码。因此,如果您想要 cunstruct url ,请
"baseUrl?firstName=" + myFirstName + '&lastName=' + myLastName
您不应忘记使用encodeURIComponent
函数对myFirstName
和myLastName
进行编码。相反,您可以使用jQuery.param
(请参阅why my search code does not work on internet explorer)或更好地使用jqGrid的postData
参数(请参阅jqgrid not updating data on reload和How 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(),