代码之家  ›  专栏  ›  技术社区  ›  Luke Lowrey

获取包含jqgrid参数的当前URL

  •  5
  • Luke Lowrey  · 技术社区  · 15 年前

    我正在寻找jqgrid向我的Ajax服务发出的最后一个请求的完整URL,包括页面、每页记录、搜索参数等。

    我是否可以在jqgrid api中使用任何方法或方法集合来实现这一点?

    3 回复  |  直到 13 年前
        1
  •  8
  •   Community CDub    8 年前

    JQGRID 不要储蓄 附加了所有参数的完整URL。就是这样 不可能 e在jqgrid api中存档。

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

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

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

    • url jqgrid的参数
    • postData jqgrid的参数
    • 一些额外的参数取决于所使用的操作(第一次网格加载、数据搜索、切割等)。此附加参数的名称可以更改为 prmNames jqgrid参数(见 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:

    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 )基于过滤器” Manufacture 开始于 Micro “排序依据 名字 . 结果按每页10行进行分页,并请求第一页。

    如果使用 Advanced Searching Toolbar Searching 而不是 Simple Searching 这个URL看起来会有点像其他的。每一次都记录在案 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的参数(参见 jqgrid not updating data on reload How to filter the jqGrid data NOT using the built in search/filter box . 在最后一种情况下,符号“?”如果需要,将在URL中插入“&”,所有数据值都将根据 编码成分 .

        2
  •  5
  •   JMax Dan    13 年前

    我有一个类似的需求,用这个解决了它:

    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 应替换为要传递的任何其他参数。

        3
  •  0
  •   Anish    14 年前

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

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