2017-10-09 67 views
0

データテーブルに行番号(最初の列)を表示しようとしていますが、残りの部分は表示していません。jQuery Datatable - Scrollerが有効なときに行番号を表示

私はこの例に従うことを試みた: https://datatables.net/examples/api/counter_columns.html

を、私は私のDataTableのスクロールを有効にしています。

var data = []; 
 
     for (var i=0 ; i<5000 ; i++) { 
 
      data.push([ 
 
      '', 
 
      'First Name ' + i, 
 
      'Last Name '+ i, 
 
      'Postal - ' + i, 
 
      'ZIP - '+ i, 
 
      'USA' ]); 
 
     } 
 
      
 
     var t = $('#example').DataTable({ 
 
      data:   data, 
 
      deferRender: true, 
 
      scrollY:  200, 
 
      scrollCollapse: true, 
 
      scroller:  true, 
 
      info:false 
 
     }); 
 
    
 
    t.on('order.dt search.dt', function() { 
 
     t.column(0, {search:'applied', order:'applied'}).nodes().each(function (cell, i) { 
 
      cell.innerHTML = i+1; 
 
     }); 
 
    }).draw();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script> 
 
<script src="https://cdn.datatables.net/scroller/1.4.3/js/dataTables.scroller.min.js"></script> 
 

 
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet"/> 
 
<link href="https://cdn.datatables.net/scroller/1.4.3/css/scroller.dataTables.min.css" rel="stylesheet"/> 
 

 
<table id="example" class="display nowrap" cellspacing="0" width="100%"> 
 
     <thead> 
 
      <tr> 
 
       <th></th> 
 
       <th>ID</th> 
 
       <th>First name</th> 
 
       <th>Last name</th> 
 
       <th>ZIP/Post code</th> 
 
       <th>Country</th> 
 
      </tr> 
 
     </thead> 
 
    </table>

注:行番号はフィルタに基づいてデータと変更に縛られていません。

ご意見、ご協力をお待ちしております。

+1

これが好きで、イテレータがいくつかのレコードで停止していると思うのですが、スクロールすることができます。200pxに行を繰り返します。この場合、この列をjsonに追加して、動的に反復する必要はありません。この値の変更を5000 pxに設定するとどうなりますか? –

+2

@headmaxは良い点があります。 'scrollY'は' scrollY:200'の数字を '54 'まで使用し、' scrollY:300'の数字は'81'まで使用します。今なぜ...私は言うことができません。 --- 'data'配列の行番号をプッシュすることについての示唆は、その行が" id "の行である場合に行うことです。フィルタリングされた行に番号を付けるだけの場合(行番号はデータに関連付けられず、フィルタに基づいて変更されます)、それは他のものです。 **このケースを明確にしてください** ** –

+0

@LouysPatriceBessette、行番号はデータに関連付けられておらず、フィルタに基づいて変更されます。同じように質問を更新しました。 –

答えて

2

あなたの奇妙な問題が見つかりました。

あなたはページ番号を無効にするためにpaging:falseが見つかりませんでした。これはあなたの行番号付けの目的を妨害していました。

私はそれがこのdocumentation about scrollYで示唆していることがわかりました。

そして、scroller:trueがありました。これは作業にページネーションが必要です...そして、これはajax ressourceと併用されています。投稿コードであなたの場合はありません。

documentation about scroller全体をお伝えします。


2つのオプションのように見えますが、友人です。それはどちらか一方です。

CodePenで作業するように行番号を付けました。

+0

あなたの応答を感謝します。私の場合、私はスクローラーが必要です:真です。私はデータの仮想レンダリングが必要なので、scrollerはtrueに設定されています。また、scrollerがページングに依存するため、ページングをfalseに設定することはできません。 –

+1

いずれかのオプションの選択は、データソースによって異なります。 Ajaxの「スクロール」はページ設定が必要ですが、JavaScript配列として提供されるデータにはページ番号がfalseになる必要があります。 –

関連する問題