JQGrid和.NET MVC - 加载搜索结果

时间:2010-03-10 05:53:30

标签: asp.net-mvc jqgrid

好的,我是jQuery的新手,但是JQGrid已经引起了我的兴趣。在实现网格时,我遇到了两个我不确定如何解决的问题。两者都涉及加载网格结果。

  1. 如果路线中有参数,如何加载网格。例如,http://domain.com/search/results/2010/KY...I我想要在肯塔基州匹配2010年的所有结果。在网格初始化的javascript部分,我需要提供一个URL(例如/ search / gridResults /)。如何传递其他路线值或至少使用它们来加载网格。

  2. 同样的问题,但更多的是从页面加载来自搜索表单的已发布表单值。

  3. 也许URL主要与AJAX-y功能有关。用AJAX排序和分页会很好,但是用AJAX加载网格是不必要的。

    很抱歉很长的帖子,但我确信其他人也遇到过这个问题,即使谷歌告诉我:) PS - 我看过Phil Haacks(sp?)和Craig关于使用JQGrid的博客,但是没有触及加载预定的搜索结果。

1 个答案:

答案 0 :(得分:0)

  1. 您可以直接使用“url”键指定。例如:/search/gridResults/2010/KY
  2. 我实际上在postData jqgrid键中使用了一个自定义javascript方法(根据具体情况,您可以使用它来解决问题1)。这对我来说似乎有点蹩脚,我不得不写这种方法,但我在互联网上找到了一些东西,并且不得不继续对它进行攻击,以使其足够灵活以供我使用。
  3. 以下自定义方法的代码。它直接从url读取params。对于POST参数,你显然需要做一些其他事情,但是为了让它们进入jqgrid,这是同样的想法:

    // Read a page's GET URL variables and return them as an associative array.
    function getUrlVars() {
      var vars = [], hash;
      var hashes = window.location.href.slice(
        window.location.href.indexOf('?') + 1
      ).split('&');
      for(var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        if (hash.length == 2) {
          vars.push(hash[0]);
          vars[hash[0]] = decodeURIComponent(hash[1].replace("+", "%20"));
        }
      }
      return vars;
    }
    

    希望这有帮助......如果你想出更好的东西,我很乐意听到它。 :)