jqgrid 中的 Pre-select 过滤器(multi-select)

Pre-select filters in jqgrid (multi-select)

以此为例(http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridWithSearchingToolbarMultilpe.htm) from this question (Excel like filtering in jqgrid)

有没有办法从一开始就设置过滤器参数?例如,在 'Shipped via' 列中,我希望选中 'TNT' 和 'Intim',不选中 'FedEx'。

我认为可行的一个解决方案是 ship_via

if(id == 'gs_ship_via'){ 
                        _.forEach($options, function(option){
                            if(option.value != 'FexEx'){
                                option.selected = true; 
                            } else {
                                option.selected = false;    
                            }
                        });
                    }

之后我 运行 遇到的问题是它不更新网格中的数据。因此,我需要一种不同的方式来设置复选框,以更新网格的方式加载后。

我想您需要包含 change 事件 ($("#gs_ship_via").change();) 的触发器或调用 triggerToolbar ($grid[0].triggerToolbar();)。确切的解决方案在很大程度上取决于您进行更改的位置。如果您要更改 multi-select 选项,例如 初始化 multiselect 之后,您可能会看到错误的 multiselect 选项,并且您可以需要调用 refresh.

请参阅 the demo,其中显示的结果类似于

可能可以修改 the solution for setting multiple values which uses the idea from the answer,但像我现在这样需要多一点时间。 :-(