2011-08-24 64 views
0

我的jqGrid 4.1.2和荫试图强迫过滤器要在$触发(文件)。就绪(jqGrid的强制过滤器触发

我想实现的是填充过滤领域之一,价值观和“按回车键“这样的jqGrid将过滤出来

我已经通过GET传递的值到页面,传播这样的过滤器字段值:

  var filteritem = document.getElementById("gs_fieldToBeFilteredID"); 
     filteritem.value = "MY filter value"; 

它会导致该过滤器领域充满了”我的过滤器价值“,但现在Iam试图在文档末尾触发”输入新闻“,如下所示:

$(document).ready(function() { 

    $("#myGrid")[0].triggerToolbar(); 
} 
); 

我也

jQuery("#myGrid").jqGrid("filterToolbar"); 

试图与任何效果。我也把上面的代码放在jQGrid的loadComplete事件中,没有任何影响。 过滤器已满,但我“不能”强制它触发过滤......任何想法?!

我会欣赏任何帮助。 最好的问候

+0

我发现添加一些延迟会导致这个工作正常: var xxx = jQuery(“#list2 _ <%= this.ClientID%>”); alert(“DELAY”); xxx.jqGrid(“filterToolbar”); $(“#list2 _ <%= this.ClientID%>”)[0] .triggerToolbar(); 但添加延迟它不是一个选项 – aspenX

回答

0

你应该能够发布的数据添加到网格中,这是你想要,所以你不需要重新触发电网重载什么。它会在最初的请求中得到它。

以下是文章全文:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:post_data_module

伊夫与“之前的请求”活动,设立,增加了你想要的数据的功能做到了。

function jqGridBeforeRequest() 
{ 
    $(this).appendPostData(<JSON/object data here>); 
} 
2

在我看来,那the old demothe answer是你所需要的。

<input>元素上设置value后,你可能会引发change过滤器,然后用

$(filteritem).focus().trigger({ type : 'keypress', charCode : 13 }); 

取决于您触发keypress事件,你可以需要做这单独线程。所以这可能是你需要在setTimeout中这样做,就像我在演示中做的那样。