2012-02-04 15 views
2

を削除し、私はシンプルなJqGridjqGrid - 問題

$j("#gridTemp").jqGrid({ 
    jsonReader: { 
     id: 'AppID' + 'Name', 
     repeatitems: false 
    }, 
    url: GetData, 
    datatype: "json", 
    colNames: ['Col1', 'Col2'], 
    colModel: [ 
       { name: 'Col1'}, 
       { name: 'Col2'} 
      ], 
    rowNum: 10, 
    autowidth: true, 
    rowList: [10, 20, 30], 
    pager: '#pager1', 
    }).navGrid('#pager1', { edit: false, add: false, del: true, search: false }, {}, {}, { url: DeleteAddress }); 

}

とそのが動作していない何らかの理由でボタンのクリックイベント

$j('#del_gridTemp').click(function() { 
     alert($j('#gridTemp').jqGrid('getGridParam', 'selarrrow')); 
    }); 

を削除取得しようとしています。どんな助けもあります。

+0

あなたは何を削除しようとしていますか?行?列?グリッド? – sinemetu1

+0

すべての行を選択します。 – Yass

+0

選択したIDのリストがサーバーに送信される(URL「DeleteAddress」にPOSTされます)、またはサーバーがアイテムを削除してjqGridがサーバーの確認を受け取った後で同じアクションを実行する必要があるかどうか通知する*前に通知しますか? '$ j( '#del_gridTemp').Click'ハンドルの現在のコードは意味がありません。だからあなたが本当に望んでいるものを記述すれば、私はこれをどのように実装できるかをお勧めします。 – Oleg

答えて

2

私はエラーが何であるかを知らないが、私はthe demoはあなたを助けることを願っています。

最初にselarrrowパラメータを使用しているので、マルチセレクショングリッドを使用するとします。そこでコードにmultiselect: trueというパラメータを追加しました。 $('#del_gridTemp').click(function() {...});の元のコードは私のデモで動作します。アラートのテキストを変更しました。あなたは、たとえば、「TEST4」、「TEST2」を有する行を選択した場合は、確認のボタンを「OK」ボタンをクリックし、「削除」の後、「TEST12」は、最初

enter image description here

のようなメッセージが表示されます。ダイアログには、あなたは私が使用することをお勧めいたしますonclickSubmitコールバック関数から次のメッセージ

enter image description here

が表示されます。コードにonclickSubmit法の内部

$("#gridTemp").jqGrid('navGrid', '#pager', {refreshstate: 'current', add: false, edit: false, del: true}, 
    {}, 
    {}, 
    { url: '/DeleteAddress', 
     onclickSubmit: function (options, postdata) { 
      alert('in onclickSubmit: postdata=' + postdata); 
      return { myData: 'Hello'}; 
     }}); 

のように見える私は、追加情報と一緒に送信される情報を追加するために追加的に方法を示しています。

URL「/ DeleteAddress」の下にサーバーコードがありませんが、FirebugのFiddlerのようなツールでは、送信されるデータの形式にできるようになります。これは、x-www-form-urlencodedで形式のデータです:復号化された形である

myData=Hello&oper=del&id=4%2C2%2C12 

は:

myData=Hello 
oper=del 
id=4,2,12 

私はそれはあなたが必要なものに近いものでなければならないと思います。

+0

が動作します。ありがとうございました。しかし、私は自分のコードで問題を理解することができませんでした。 – Yass

+1

@Yass:ようこそ!私はあなたのコードを正確に再現しています。さらに、 '$( '#del_gridTemp').Clickを直接使用することはお勧めしません。 'onclickSubmit'の使用法が優れています。ユーザーが削除ボタンをクリックするだけでなく、削除を確認する場合にのみ呼び出されます。 [navButtonAdd](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_buttons)を使って "Delete"と同じボタンを作成し、 'onClickButton'コールバックを完全に制御することもできます。 – Oleg

0

jqGridメソッドhereを参照してください。あなたはこのような行を削除することができます。

$('#the_button').click(function() { 
    //get selected Ids returns like: ["1", "2", "3"] 
    var selectedIds = $('#gridTemp').jqGrid('getGridParam', 'selarrrow'); 

    //iterate over each id and delete the corresponding row 
    $.each(selectedIds, function (index) { 
     $('#gridTemp').jqGrid('delRowData', selectedIds[index]); 
    }); 
}); 
+0

問題は$( '#the_button')です。ボタンをクリックしたときにイベントが発生しないようにしました。 – Yass

+0

@Yassそれでは何が起こっているのか、もっと詳しく説明できますか?それ以上のコードがなければ、伝えるのは難しいです。 – sinemetu1

+0

JqGridの小さなゴミ箱のアイコンをクリックすると、$( '#del_GridID).clickイベントが正しく呼び出されます。私の場合は、イベントを発射しない。私は私の質問で完全なコードを与えている。 – Yass

関連する問題