【问题标题】:JqGrid parameter value does not changeJqG​​rid 参数值不变
【发布时间】:2011-07-04 06:14:48
【问题描述】:

我有一个选择列表,我将 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 值,尽管所选列表正确返回值。

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

【问题讨论】:

    标签: jquery-plugins jquery jqgrid parameter-passing


    【解决方案1】:

    首先你应该只初始化一次jqGrid。可以通过调用 jQuery("#list").jqGrid({...}); 来完成此操作。

    你的主要问题。它可以很容易地解决。您可以在the old answer 中找到有关此方法的最多信息。你应该做的只是将postData参数的id属性定义为一个函数:

    postData:{Id:function() { return $("#mySelect").val(); }
    

    而不是postData:{Id:Id}。现在网格将调用该函数并在每次重新加载网格时加载所选项目的当前值。你只需要放置

    jQuery("#list").trigger("reloadGrid",[{page:1}])
    

    在选择的'change' 事件处理程序中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多