如何获取Jqgrid过滤器中更改的下拉列表的值

时间:2012-02-10 13:49:02

标签: jquery jqgrid

我的Jqgrid中有一个过滤器,当我更改过滤器中的下拉列表时,我想要一个函数来执行。我使用当前代码得到的问题是它使用了更改之前的值,而不是之后的值。

目前我有以下代码:

    { name: 'STATUS', index: 'STATUS', sortable: false, width: 80, stype: 'select',
    searchoptions: { value: ":All;Active:Active;Not active:Not active",
                    dataEvents: [
                            { type: 'change',
                                fn: function() {
                                        alert($('#Jqgrid').getGridParam('postData').filters);
                                        }
                                    }
                                ] 
                    }
    },

2 个答案:

答案 0 :(得分:0)

如果您使用工具栏搜索,则可以使用filterToolbar方法的beforeSearch回调选项。在方法内部,您可以使用$('#Jqgrid').jqGrid('getGridParam', 'postData').filters来获取甚至修改过滤器,然后才能使用。您可以查看the answer作为示例。

如果您想在之后执行某些操作,则应用过滤器并加载过滤后的数据,您应该访问postData.filters内的loadComplete。请参阅another answer作为示例。

答案 1 :(得分:0)

尝试使用以下内容获取值:

...
dataEvents: [
                        { type: 'change',
                            fn: function() {
                                    console.log("value", $(this).val(), $(this).find("option:selected").val());
                                    }
                                }
                            ] 
                }
...

取决于使用jquery版本。