1

必要なことを行うための editData または onclickSubmit を取得できません。

更新後に追加または編集された行にグリッドを追従させたい。したがって、サーバーが追加/編集されたレコードの ID と正しいページを返すことができるように、追加情報を投稿する必要があります。

addfunc と editfunc およびカスタム フォームを使用してこれを行うことができましたが、jqgrid で生成されたフォームで行いたいと思います。

DocumentReady 関数の前に宣言されたグローバルがあります。次に、編集パラメーターで editData を使用し、beforeSubmit または beforeInitData で変数を設定してみました。変数はサーバーにポストされますが、最初に宣言されたときのみです。editData は初期化時に作成され、更新できないようです。onclickSubmit も使用してみましたが、それも機能しませんでした。

編集した例を次に示します。

var data2pass = {};
    data2pass['sortColumnName'] = '';
    data2pass['sortOrder'] = '';
    data2pass['rowNum'] = '';

$(document).ready(function(){

  $("#ProdGrid").jqGrid({
    url:'products_DAT.php?thespot=server_ProdGrid',
    datatype: 'json',
    mtype: 'POST',
    colNames:['ID','Product Name:','Category:','Unit Price:'],
    colModel :[ 
      {name:'ProductID', editable:true},
      {name:'ProductName', editable:true},
      {name:'CategoryID', editable:true, edittype:"select", editoptions: { dataUrl:  "products_DAT.php?thespot=select4_CategoryID" }},
      {name:'UnitPrice', align:'right', editable:true, formatter:'currency'}
    ],
    pager: '#ProdGrid_pager',
    rowNum: 15,
    sortname: 'ProductName',
    sortorder: 'asc',
    gridview: true,
    editurl: 'products_DAT.php?thespot=update_ProdGrid',
    height: 'auto'
  });

$("#ProdGrid").jqGrid('navGrid','#ProdGrid_pager', {},
{closeAfterEdit:true, reloadAfterSubmit: false, editData: data2pass,
    beforeInitData: function(formid) { 
    data2pass['sortColumnName'] = 'ProductName';
    data2pass['sortOrder'] = 'asc';
    data2pass['rowNum'] = '15';
    }
}, // Edit parameters
{}, // Add Parameters
{reloadAfterSubmit:true}, // Delete parameters
{}, // Search params
{} // View params
 );

ただし、data2pass 変数は最初に宣言され、サーバーにポストされます。サーバーに送信する data2pass の値を更新するには、どのイベントを使用すればよいですか? または、それを行う別のより良い方法はありますか?

どんなアドバイスでも大歓迎です。

ありがとう

4

2 に答える 2

0

これはまさにあなたが望むことを行うべきだと思います。コントローラーに送信される postData 変数を変更し、リロードをトリガーします。

$('#gridName').jqGrid('setGridParam', { postData: { KeyName: KeyValue } }).trigger('reloadGrid', [{ page: 1}]);

編集の一部としてそれが必要な場合は、ほぼ同じことができます

$(#gridName).jqGrid('editGridRow', rowid, { editData: { KeyName: KeyValue
于 2013-04-21T18:54:26.210 に答える