4

jquery データテーブルを使用しています。テーブル内の各行にチェックボックスを使用しています。ユーザーがテーブルの外側にあるすべてのリンクを選択すると、テーブル内のすべてのレコードが選択されます。そのために、この関数を使用しています。

function checkAll(formname, checktoggle)
{  
 var checkboxes = new Array(); 
 checkboxes = document[formname].getElementsByTagName('input');
 for (var i=0; i<checkboxes.length; i++)  {
  if (checkboxes[i].type == 'checkbox')   {
    checkboxes[i].checked = checktoggle;
   }
 }

}

ここですべてのリンクを選択します

 <a onclick="javascript:checkAll('frm_charges', true);" href="javascript:void(0);">Select All</a>

「frm_charges」は、フォームの名前と ID です。

これは、テーブル内で使用しているチェック ボックスのコードです。

  <input type="checkbox" value="742" name="charges[]" class="charges"  style="opacity: 0; position: absolute; z-index: -1; visibility: hidden;">

今私の問題は、すべてのページではなく最初のページから行を選択しているページネーションがあることです。スクリーンショット

4

3 に答える 3

1

これを試して:

$(function () {
    var oTable = $('#datatable').dataTable();
    $('#selectall').click(function () {

       var checkall =$('.main_table').find(':checkbox').attr('checked','checked');
       $.uniform.update(checkall);
    });
});

$(function () {
    var oTable = $('#datatable').dataTable();
    $('#deselectall').click(function () {
      //alert('hi');
       var checkall =$('.main_table').find(':checkbox').attr('checked',false);
       $.uniform.update(checkall);
    });
});
于 2013-06-11T14:32:47.540 に答える
1

したがって、問題は、JavaScriptが画面上のチェックボックスのみを取得していることです。元のテーブル データにあるチェックボックスを取得する必要があります。次の例では、すべてのテーブル データを取得し、チェックボックスをマークしてループし、データ テーブルを再描画します。

// var oTable - reference to your datatable object
var checkboxColumn = 14; // column number that has the checkboxes in it

function checkAll(checktoggle) {
    // get all datatable data
    var data = oTable.fnGetData();

    // loop through all data
    for (var i in data) {
        // convert the input into jQuery object
        var row = $('<div>' + data[i][checkboxColumn] + '</div>');

        // Check the boxes as needed
        row.children('input').attr('checked', (checktoggle) ? 'checked' : false);

        // update the data in datatables
        oTable.fnUpdate(row.html(), parseInt(i, 10), checktoggle, false, false);
    }

    // redraw the datatable
    oTable.fnDraw();
}
于 2013-06-07T13:24:55.670 に答える