【问题标题】:How to get value of a dropdownlist on change in Jqgrid filter如何在 Jqgrid 过滤器中更改下拉列表的值
【发布时间】:2012-02-10 13:49:02
【问题描述】:

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

【问题讨论】:

  • “Jqgrid 过滤器”下是什么意思?您使用toolbar searching 还是使用jqFilter 方法的searching dialog?为什么更改后需要更改值?您想在搜索之前获得价值吗?这是不一样的。请更详细地描述您的工作和需求。
  • 我希望在工具栏搜索的下拉列表中获取所选值的值。我通过在 loadComplete 函数中使用 $('#Jqgrid').getGridParam('postData').filters) 解决了这个问题。

标签: jquery jqgrid


【解决方案1】:

如果您使用工具栏搜索,您可以使用filterToolbar 方法的beforeSearch 回调选项。在方法内部,您可以使用$('#Jqgrid').jqGrid('getGridParam', 'postData').filters 来获取甚至修改过滤器before,它将被使用。你可以以the answer 为例。

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

【讨论】:

    【解决方案2】:

    尝试通过以下方式获取值:

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

    取决于使用的 jquery 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      相关资源
      最近更新 更多