jquery easyui使用虚拟滚动视图显示数百万行数据

@author YHC

datagrid的虚拟滚动特性可以运用为显示大数量的记录而不需要分页,当滚动垂直滚动条,datagrid执行ajax请求去加载和刷新现有的记录.

整个刷新的行为过程是平稳的没有闪烁,在此教程中我们将创建一个datagrid和运用虚拟滚动特性从服务器加载数据.


查看示例

Create DataGrid
datagrid运用虚拟滚动特性,'view' 属性应该设置为 'scrollview',用户应该从datagrid扩展下载scrollview 和引入scrollview 文件在页面的头部.

<script type="text/javascript" src="http://www.jeasyui.com/easyui/datagrid-scrollview.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将从服务器获取指定记录数,

The Server Code
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);  

下载示例代码:









评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值