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

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

jQuery EasyUI数据网格(datagrid)可以使用虚拟滚动视图来显示大数量的记录而不需要分页。滚动垂直滚动条,数据网格将执行ajax请求以加载和刷新现有的记录;整个刷新的行为过程是平稳的没有闪烁。 

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

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

创建数据网格(DataGrid)

为数据网格运用虚拟滚动特性,view属性应该设置为scrollview。用户应该从数据网格扩展下载scrollview,并在页面头部引用scrollview文件。

<script type="text/javascript" src="/try/jeasyui/datagrid-detailview.js"></script>
<table id="tt" class="easyui-datagrid" style="" 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

作者:唐伯虎点蚊香,如若转载,请注明出处:https://www.web176.com/easyui/14709.html

(0)
打赏 支付宝 支付宝 微信 微信
唐伯虎点蚊香的头像唐伯虎点蚊香
上一篇 2023年3月31日
下一篇 2023年3月31日

相关推荐

发表回复

登录后才能评论