jQuery EasyUI データグリッド -仮想スクロールビューを使用して大量データを表示する
データグリッド(datagrid)の仮想スクロール機能を使用すると、ページングなしで大量のレコードを表示できます。 垂直スクロールバーをスクロールすると、データグリッド(datagrid)はajaxリクエストを実行して既存のレコードをロードおよび更新します。 更新動作のプロセス全体がスムーズで、ちらつきはありません。 このチュートリアルでは、データグリッド(datagrid)を作成し、仮想スクロール機能を使用してサーバーからデータをロードします。
データグリッド(DataGrid)の作成
データグリッド(datagrid)に仮想スクロール機能を適用するには、'view' プロパティを 'scrollview' に設定する必要があります。 ユーザーはデータグリッド(datagrid)拡張機能からscrollviewをダウンロードし、ページのヘッダーでscrollviewファイルを参照する必要があります。
<script type="text/javascript" src="../try/jeasyui/datagrid-detailview.js"></script>
<table id="tt" class="easyui-datagrid" style="width:700px;height:300px" title="DataGrid - VirtualScrollView" data-options="view:scrollview,rownumbers:true,singleSelect:true, url:'datagrid27_getdata.php',autoRowHeight:false,pageSize:50"> <thead> <tr> <th field="inv" width="80">Inv No</th> <th field="date" width="100">Date</th> <th field="name" width="80">Name</th> <th field="amount" width="80" align="right">Amount</th> <th field="price" width="80" align="right">Price</th> <th field="cost" width="100" align="right">Cost</th> <th field="note" width="110">Note</th> </tr> </thead> </table>
注意してください。ここではpaginationプロパティを使用する必要はありませんが、pageSizeプロパティは必須です。ajaxリクエストを実行するとき、データグリッド(datagrid)はサーバーから指定された数のレコードを取得するためです。
サーバーサイドコード
datagrid27_getdata.php
$page = isset($_POST['page']) ? intval($_POST['page']) : 1;
$rows = isset($_POST['rows']) ? intval($_POST['rows']) : 50;
$items = array();
date_default_timezone_set('UTC');
for($i=1; $i<=$rows; $i++){
$index = $i+($page-1)*$rows;
$amount = rand(50,100);
$price = rand(10000,20000)/100;
$items[] = array(
'inv' => sprintf("INV%04d",$index),
'date' => date('Y-m-d',time()+24*3600*$i),
'name' => 'Name' . $index,
'note' => 'Note' . $index,
'amount' => $amount,
'price' => sprintf('%01.2f',$price),
'cost' => sprintf('%01.2f',$amount*$price)
);
}
$result = array();
$result['total'] = 8000;
$result['rows'] = $items;
echo json_encode($result);
jQuery EasyUI サンプルをダウンロード
jeasyui-datagrid-datagrid27.zip
その他の拡張機能