0

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

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

谢谢,

塔尔。

4

2 回答 2

0

最终,我通过执行以下操作恢复了工具栏过滤器:

  1. 我将所有规则保存到一个临时变量(barFilter)中。
  2. 网格恢复后,我添加了一个新函数,它获取 barFilter 并将值提取到它们的位置 restoreToolbarFilter($('#'+gridName),barFilter);:

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]);
				}
}

于 2015-04-02T17:59:53.367 回答
0

我认为如果您已经填写了过滤器工具栏的所有字段,那么您可以调用triggerToolbar方法。请注意,该方法是 DOM 元素的方法。所以你可以打电话

$grid[0].triggerToolbar();
于 2015-04-02T16:07:37.920 回答