2011-02-25 202 views
0

我有selet列表,我將ID傳遞給jqGrid函數,我想根據用戶選擇的ID加載不同的數據集。 因此,我在選擇列表的更改事件中傳遞值。JqGrid參數值不會改變

RelaodGrid($(this).val()); 

然後我有這樣的RelaodGridfunction。

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"); 


    }; 

此重新加載格但返回相同value.First花費的時間正確的ID值,但在那之後,每重裝,需要值的第一個選擇的ID,雖然選擇的列表正確返回值。

如何解決這個問題?我哪裏出錯了? 謝謝。

回答

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'事件處理中。