如何更改jqGrid中的过滤器选择

时间:2012-11-19 01:33:52

标签: javascript jquery jquery-ui jqgrid

我在jsbin上使用以下示例(从@ oleg的示例修改代码)

http://jsbin.com/owitod/18/edit

我有一个jquery-ui对话框,显示一个下拉框,模拟其中一列和一个按钮的过滤器下拉列表。单击该按钮时,警报对话框将显示当前的jqGrid过滤器。但是,当我在对话框内的下拉列表中更改下拉选项时,我也希望更改jqGrid过滤器。

以上演示的示例:

  1. 选择类别运动
  2. 点击显示对话框
  3. 通知运动已预选
  4. 点击显示过滤器并注意:

    { “groupOp”: “AND”, “规则”:[{ “场”: “类别”, “运算”: “当量”, “数据”: “体育”}]}

  5. 将对话框中的下拉菜单更改为科学

  6. 此时,当我点击显示过滤器时,我希望提醒以下内容

    { “groupOp”: “AND”, “规则”:[{ “场”: “类别”, “运算”: “当量”, “数据”: “科学”}]}

  7. 我在代码中尝试了以下内容,但它不起作用:

    $("#gs_Category").val($("#mycat").val());  //this doesn't work...
    
    alert(jQuery("#list").jqGrid('getGridParam', 'postData').filters);
    

1 个答案:

答案 0 :(得分:0)

我认为您遇到的错误是尝试设置所选选项。 gs_Category是一个精选下拉列表。要更改所选的选项,请尝试:

$('#gs_Category').find('option[value="' + $('#mycat').val() + '"]').attr('selected', true);

<强>更新

在设置所选值后添加以下行将导致触发网格的过滤器事件(因为您使用的是本地数据类型)。

$('#gs_Category').trigger('change');