2011-08-24 65 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中這樣做,就像我在演示中做的那樣。