Jquery plugins JqGrid参数值不更改

Jquery plugins JqGrid参数值不更改,jquery-plugins,jquery,jqgrid,parameter-passing,Jquery Plugins,Jquery,Jqgrid,Parameter Passing,我有一个selet列表,在这里我将id传递给jqGrid函数,我希望根据用户选择的id加载不同的数据集。 因此,我在选择列表的更改事件中传递值 RelaodGrid($(this).val()); 然后我有这样的relaodGrid函数 function RelaodGrid(Id) { jQuery("#list").jqGrid({ url: '/Home/GridData', datatype: 'json',

我有一个selet列表,在这里我将id传递给jqGrid函数,我希望根据用户选择的id加载不同的数据集。 因此,我在选择列表的更改事件中传递值

RelaodGrid($(this).val());
然后我有这样的relaodGrid函数

function RelaodGrid(Id) {
       jQuery("#list").jqGrid({
            url: '/Home/GridData',
            datatype: 'json',
            mtype: 'POST',
            postData:{Id:Id},
            colNames: ['Id', 'Value1', 'Value2'],
            colModel: [
          { name: 'Id', index: 'Id', width: 50, align: 'left' },
          { name: 'Value1', index: 'Value1', width: 100, align: 'left' },
          { name: 'Value2', index: 'Value2', width: 100, align: 'left'}],
            pager: jQuery('#pager'),
            viewrecords: true,
            caption: 'Summary'
        }).trigger("reloadGrid");


    };
这将重新加载网格,但返回相同的值。第一次使用正确的Id值,但在每次重新加载之后,将使用第一个选定的Id值,尽管选定列表正确返回该值

如何解决这个问题?我哪里出错了??
谢谢。

首先,您应该只初始化jqGrid一次。我们可以通过调用
jQuery(“#list”).jqGrid({…})来实现这一点

解决你的主要问题。这个问题很容易解决。您可以在中找到有关此方法的大多数信息。您只需将
postData
参数的
id
属性定义为一个函数:

postData:{Id:function() { return $("#mySelect").val(); }
而不是
postData:{Id:Id}
。现在网格将调用函数并在每次网格重新加载时加载所选项目的当前值。你所需要的只是放置

jQuery("#list").trigger("reloadGrid",[{page:1}])
在select的
'change'
事件处理程序中