2017-08-21 11 views
3

私のアプリケーションはデータベースを操作しており、DBのデータが変更されたときにページがリロードされています。データを表示するために、私はブートストラップdatatableを使用しました。私のデータテーブルは常に1つの子、非表示の列を持って、私はページを更新する前に拡張状態を保存したい。私はそれをしなかったが、私は2つの問題を抱えて:私はリロード後に行を拡大していた場合再ロードdivの後にデータテーブルに子プロセスの子プロセスを保存する

  1. を、子行も

を変更しない親行のようなアイコン

  • 拡大行のアイコンを拡大してきましたここに私が望むものと私が得るものの例があります。

    enter image description here

    私は動的にTRクラスを変更しかし、それは動作しませんでしたか、私はそれが間違って作っていたとしていました。

    私のJSコード:

    <script type="text/javascript"> 
        function refreshtable() { 
         var openRows = []; 
         var table = $('#table').DataTable(); 
         table.rows().every(function (rowIdx, tableLoop, rowLoop) { 
          var tr = rowIdx; 
          var row = table.row(tr); 
          if (row.child.isShown()) { 
          openRows.push(rowIdx); 
          } 
         })  
    
         $('#tablediv').hide(); 
         $('#load').show(); 
         $("#tablediv").load("mainrf.jsp"); 
    
    
         setTimeout(function(){ 
          var table = $('#table').DataTable();  
          var arrayLength = openRows.length; 
          var roww; 
          for (var i = 0; i < arrayLength; i++) { 
           roww = table.row(openRows[i]); 
           roww.child(format(roww.data())).show(); 
          }  
         }, 500); 
        } 
    
    
        function format(value) { 
         var temprow = value.toString(); 
         var pieces = temprow.split(/[\s,]+/); 
         var piece = pieces[pieces.length-1]; 
         return '<table><tbody><tr><td>Comments: ' + piece + '</td></tr><tbody></table>'; 
        } 
    </script> 
    
  • 答えて

    0

    私は、forループを変更することで、それをやりました。今は、ボタンをクリックするだけでトリガしています。

    for (var i = 0; i < arrayLength; i++) { 
          $('td:first-child', table.row(openRows[i]).node()).trigger('click'); 
         } 
    
    関連する問題