免费jqGrid 4.8.0 - 恢复网格toolbarfilter值

时间:2015-04-02 15:39:16

标签: jquery jqgrid free-jqgrid

在尝试将GridUnload作为过滤器,排序,组等方面的先前状态后,我正在尝试恢复网格。我成功地恢复了所有这些,但遗漏了网格中的一些视觉方面,这些视觉方面不是我正在恢复的数据的一部分,因此我看不到它们。

例如,我确实恢复了过滤器值(toolbarfilter),但我无法在工具栏中看到过滤器值。 (他们在那里,因为我可以使用$(“#gview _”+ $ grid.attr('id')+'#'+ inputId).val(column.data)恢复它们,但我不知道如何让它们重新出现而不用手动迭代它们。

谢谢,

塔尔。

2 个答案:

答案 0 :(得分:0)

我认为如果您已经填充过滤器工具栏的所有字段,那么您只需调用triggerToolbar方法即可。小心那个方法是DOM元素的方法。所以你可以打电话

$grid[0].triggerToolbar();

答案 1 :(得分:0)

最后,我通过执行以下操作恢复了toolbarfilter:

  1. 我将所有规则保存到临时变量(barFilter)中。
  2. 网格恢复后,我添加了一个新函数,它获取barFilter并将值提取到它们的位置restoreToolbarFilter($('#'+ gridName),barFilter);:
  3. regexEscape = function(s) {
    			return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
    };
    
    function restoreToolbarFilter($grid,searchParams){
    	
    				
    				for (key in searchParams) {
    					// Restore the search input string
    					var column = searchParams[key];
    					
    					inputId = regexEscape('gs_' + column.field);
    				
    					
    					$("#gview_"+$grid.attr('id')+' #' + inputId).val(column.data);
    					
    					// Restore the search filter type and operator symbol
    					operator = $("#gview_"+$grid.attr('id')+' #' + inputId).closest('tr').find('.soptclass');
    					$(operator).attr('soper', column.op);
    					operands = {  "eq":"==",
    									"ne":"!",
    									"lt":"<",
    									"le":"<=",
    									"gt":">",
    									"ge":">=",
    									"bw":"^",
    									"bn":"!^",
    									"in":"=",
    									"ni":"!=",
    									"ew":"|",
    									"en":"!@",
    									"cn":"~",
    									"nc":"!~",
    									"nu":"#",
    									"nn":"!#" };
    					$(operator).text(operands[column.op]);
    				}
    }