2011-10-17 30 views
1

インライン編集が有効になっている複数のjqgridを持つWebページがあり、「アクション」列(編集アイコン)が有効で、ページャーが無効です。サーバー側のデータをリロードせずに削除を処理できるように、各行の削除イベントを処理する必要があります。私はjqGrid Delete a Rowで述べたアプローチを見てきたし、それは私が私に遊説されている2つの質問がある以外は非常に便利です - グリッド全体をリロードせずにjqgrid行を削除するにはどうすればいいですか?

  1. delOptions.onClickSubmitイベントでrp_geパラメータの周りの多くの詳細がありますか?そのイベントの中から、グリッドIDを取得する方法はあり

delOptions: {onclickSubmit: function(rp_ge, rowid) {return onRowDelete(rp_ge,rowid);}},processing:true }},

- 私の列は、このように設定delOptionsを持っていますか?私は、ページ上のすべてのグリッドからイベントを削除するために使用できるジェネリック関数を用意したいと思います。 rp_geのパラメータにgboxが含まれています。グリッドIDが追加されることがあります。しかし、私はそれが人口になった時を把握することができないので、それが何であるか分からない。

function onRowDelete(rp_ge, rowid) { 
//hardcoded grid id.. don't like it. 
var gridid = '#Grid_X'; 
//what is this gbox?? can i get grid id predictable from it? 
//var gridid = rp_ge.gbox.replace("#gbox_", ""); 
var grid = $('#Grid_X'); 
rp_ge.processing = true; 
var result = grid.delRowData(rowid); 
if (result) { 
    $("#delmod" + grid[0].id).hide(); 
} 
return true; 
} 
jqGrid Delete a Rowアプローチで
  • 、コード$("#delmod"+grid[0].id).hide();ポップアップを手動で確認ダイアログを削除隠蔽されます。私が気づいたのは、ダイアログがポップアップすると、jqgridはバックグラウンドページを強調しない(灰色がかったように)。しかし、ポップアップを手動で閉じると(実際に隠されていますか?)、背景は強調されません。つまり、ページにフォーカスがない(または無効になっている)ように見えます。どのような方法でこれを修正することができますか?これはOlegが書いたdemoでも見ることができます。
  • ご協力いただければ幸いです。 (PS - 私は同じ投稿にコメントしましたが、他の人の回答についてコメントするには十分なポイントがありません)

    答えて

    0

    2番目のポイントに答えてください。 Olegなどのいくつかの例は、thisのように、以下の変更を行います。

    $("#delmod" + grid[0].id).hide(); 
    

    は、削除操作の後にフォーカスを返します

    $.jgrid.hideModal(
        "#delmod"+grid_id, 
        {gb:"#gbox_"+grid_id,jqm:rp_ge.jqModal,onClose:rp_ge.onClose} 
    ); 
    

    これに置き換えられます。

    関連する問題