Как переместить строку в JQuery DataTable на вершине при нажатии кнопки ..? - PullRequest
0 голосов
/ 20 октября 2019

Я хочу переместить строку в начало данных по нажатию кнопки ... я пробовал с функцией добавления ... но при использовании функции поиска по данным таблица сбрасывается ... ниже приведен пример кодачто я пытаюсь ..

<table id="ArgumentsTable" class="table table-striped table-bordered dataTable">

                <thead>
                    <tr role="row"><th >Name</th><th >Position</th><th >Office</th><th >Age</th> 
 <th>Start date</th><th >Salary</th></tr>
                </thead>
                <tbody>

                <tr role="row" class="odd">
                        <td class="sorting_1">Airi Satou</td>
                        <td>Account <button class="btn " id="btn1" >Save</button></td>
                        <td>Tokyo</td>
                        <td>33</td>
                        <td>2008/11/28</td>
                        <td>$162,700</td>
                    </tr><tr role="row" class="even">
                        <td class="sorting_1">Angelica Ramos</td>
                        <td>Chief <button class="btn " id="btn2" >Save</button></td>
                        <td>London</td>
                        <td>47</td>
                        <td>2009/10/09</td>
                        <td>$1,200,000</td>
                    </tr><tr role="row" class="odd">
                        <td class="sorting_1">Ashton Cox</td>
                        <td>Junior 
          <button class="btn " id="btn3"  >Save</button></td>
                        <td>San Francisco</td>
                        <td>66</td>
                        <td>2009/01/12</td>
                        <td>$86,000</td>
                    </tr></tbody>

                </table>

Вот код сценария, который я использую

`     $(document).ready(function() {
  var table = $('#ArgumentsTable').DataTable(
     {
        stateSave: true
     }
    );
  $('.btn').click( function () {
  /*var index =0;
  // rowCount = table.data().length-1,
   //var rowApp = $(this).closest('tr');
  //var indexRow = table.row(rowApp).index();
  //tempRow =""
   /*insertedRow = table.row(indexRow).data(),tempRow;
         for (var i=rowCount;i>index;i--) {
           tempRow = table.row(i-1).data();
          table.row(i).data(tempRow);
           table.row(i-1).data(insertedRow);
     } */
        $(this).closest('tr').prependTo("#ArgumentsTable");
     //table.row('.selected').remove().draw( false );
     } );
    } );`    

1 Ответ

0 голосов
/ 29 октября 2019

// Находим решение путем добавления скрытого идентификатора столбца в 0-й позиции и сортировки по его значению. Тем самым все выбранные строки будут наверху, изменив значение идентификатора

   var table = $('#ArgumentsTable').DataTable({
    paging: true,
    stateSave: true,
    "aaSorting": [[ 0, "asc" ]],
    'drawCallback': function (settings) {
        //$('#ArgumentsTable tr:last .btn').remove();

        // Remove previous binding before adding it
        $('.btn').unbind('click');

        // Bind clicks to functions
        $('.btn').click(moveRow);

    }
});


function moveRow() {
    var row = $(this).parents('tr');
    var index = table.row(row).index();
    //alert(index)
    var data1 = table.row(index).data();
    //console.log(data1);
    data1[0] = -data1[0];
    console.log(data1[0]);
    table.row(index).data(data1).draw();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...