JSRUN 用代码说话

使用虚拟滚动视图显示数据

编辑教程

jQuery EasyUI 数据网格 - 使用虚拟滚动视图显示海量数据

jQuery EasyUI数据网格(datagrid)可以使用虚拟滚动视图来显示大数量的记录而不需要分页。

滚动垂直滚动条,数据网格将执行ajax请求以加载和刷新现有的记录;整个刷新的行为过程是平稳的没有闪烁。

本例将创建一个数据网格,并运用虚拟滚动特性从服务器加载数据。

创建数据网格(DataGrid)

为数据网格运用虚拟滚动特性,'view'属性应该设置为'scrollview'。

用户应该从数据网格扩展下载scrollview,并在页面头部引用scrollview文件。

<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)将从服务器获取指定数量的记录。

服务器端代码

$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);
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟