我希望获取JqGrid向我的ajax服务发送的最后一个请求的完整URL,包括页面、每页记录数、搜索参数等。
是否有JqGrid API内的方法或一组方法可以实现这一目标?
我希望获取JqGrid向我的ajax服务发送的最后一个请求的完整URL,包括页面、每页记录数、搜索参数等。
是否有JqGrid API内的方法或一组方法可以实现这一目标?
jqGrid不会在某个地方保存附加有所有参数的完整URL。因此,在jqGrid API中存档这一点是不可能的。
要查看完整的URL,您可以使用Firebug,Fiddler或其他类似的工具。
通常情况下,人们都知道如何构建URL。从间接的理解来看,您想使用HTTP GET(mtype:“GET”
)。我将在HTTP GET的情况下解释URL的构建。
GET请求的完整URL将从以下内容构建:
url
参数postData
参数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
将不会发送。以下是一些典型的URL:
第一个URL请求加载第一页数据,每页20行,不排序。第二个URL按 Name
进行排序。第三个URL包含数据过滤(使用simple searching),基于筛选器“Manufacture
以Micro
开头”,并按Name
进行排序。结果每页显示10行数据,请求第一页。
"baseUrl?firstName=" + myFirstName + '&lastName=' + myLastName
您应该不要忘记使用encodeURIComponent
函数来编码myFirstName
和myLastName
。您可以使用jQuery.param
(请参见为什么我的搜索代码在Internet Explorer上无法工作),或者更好地使用jqGrid的postData
参数(请参见重新加载时jqGrid不更新数据和如何在不使用内置搜索/过滤框的情况下过滤jqGrid数据)。在最后一种情况下,如果需要,将在URL中插入符号“?”和“&”,并且所有数据值都将根据encodeURIComponent
进行编码。
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
应该替换为您想要传递的任何额外参数。
url: "/CaseManagement/Shipping/GetLastShipments?StudentID=" + GetSelectedStudentID(),