2010-03-10 87 views
1

好吧,我是jQuery的新手,但JQGrid已经达到了我的兴趣。在实施电网时,我遇到了两个问题,我不知道如何解决。两者都涉及加载网格结果。JQGrid和.NET MVC - 加载搜索结果

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

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

也许这个URL主要是与AJAX-y函数有关。这将是很好的排序和AJAX页面,但用AJAX加载网格是不必要的。

对不起,这个帖子很长,但我相信其他人也会遇到这个问题,即使谷歌告诉我,否则:) PS - 我看过菲尔哈克斯(sp?)和克雷格有关使用JQGrid的博客,但都没有碰在加载预先确定的搜索结果时。

回答

0
  1. 您可以直接使用'url'键指定。例如:/search/gridResults/2010/KY
  2. 我实际上在postData jqgrid键中使用了一个自定义JavaScript方法(根据具体情况,您可以使用它来解决问题1)。这对我来说似乎有些尴尬,我不得不写这种方法,但是我在互联网上发现了一些东西,为了使用起来足够灵活,我不得不继续黑客入侵。

以下自定义方法的代码。它直接从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; 
} 

希望帮助......如果你拿出更好的东西,我喜欢听到它。 :)