Bootstrap datatable не работает при добавлении аккордеона - PullRequest
0 голосов
/ 11 июня 2018

У меня есть дата данных следующим образом:

foreach($tickets as $tickets)
{
    echo ('<tr>');
    echo ('<td>'.$tickets->error.'</td>');
    echo ('<td>'.$tickets->hours.'</td>');
    echo ('<td>'.$tickets->time.'</td>');
    echo ('<td>'.$tickets->date.'</td>');
    echo ('</tr>');
}

Я добавил к нему эффект аккордеона также:

foreach($tickets as $tickets)
{
    echo ('<tr data-toggle="collapse" data-target=".demo1">');
    echo ('<td>'.$tickets->error.'</td>');
    echo ('<td>'.$tickets->hours.'</td>');
    echo ('<td>'.$tickets->time.'</td>');
    echo ('<td>'.$tickets->date.'</td>');
    echo ('</tr>');
    echo ('<tr>');
    echo ('<td class="hiddenRow">');
    echo ('<div class="collapse demo1">Demo1</div>');
    echo ('</td>');
    echo ('</tr>');
}

и таблица потеряла свои свойства данных, такие как поиск, вид как10/25/50 элементов на странице и т. Д.

enter image description here

Jquery:

$('.collapse').on('show.bs.collapse', function () {
    $('.collapse.in').collapse('hide');
});

$(".clickable-row").click(function() {
    window.location = $(this).data("href");
});

Мне нужна помощь по этому вопросу.

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Вот скрипка: http://jsfiddle.net/3ghbLrpu/1/

<html>

  <head>

    <script src="js/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>

  </head>

  <body>

    <table id="dataTable" class="table table-striped table-bordered" cellspacing="0" width="100%">
      <thead>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </thead>
      <tfoot>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </tfoot>
      <tbody>
        <tr data-toggle="collapse" data-target=".demo1" class="accordion-toggle">
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
        </tr>
        <tr>
          <td class="hiddenRow" colspan="4">
            <div class="collapse demo1">Demo1</div>
          </td>
        </tr>
      </tbody>
    </table>

  </body>

CSS

.hiddenRow {
    padding: 0 !important;
}

Другой вариант - использовать bootstrap и удалить knockoutjs

https://codepen.io/creativedev/pen/XYMRyQ

$(document).ready(function() {
  $("#collapseme").click(function() {
    if($("#test").hasClass("out")) {
        $("#test").addClass("in");
        $("#test").removeClass("out");
    } else {
        $("#test").addClass("out");
        $("#test").removeClass("in");
    }
});
});

HTML

<table id="dataTable" class="table table-striped table-bordered" cellspacing="0" width="100%">
      <thead>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </thead>
      <tbody>
        <tr class="" id="collapseme">
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
          <td>asd</td>
        </tr>
        <tr>
          <td class="hiddenRow" colspan="4">
            <div class="collapse out" id="test">Demo1</div>
          </td>
        </tr>
  </tbody>

      <tfoot>
        <tr>
          <th>Error</th>
          <th>Time Spent</th>
          <th>Time</th>
          <th>Date</th>
        </tr>
      </tfoot>
    </table>
0 голосов
/ 11 июня 2018

Попробуйте использовать colspan = "4" на втором тд

...