easyui datagrid两种分页区别

1.标准的datagrid属性设置分页:

    通过官方datagrid的pageSize,pageList属性设置,如下图,弹出结果一致

 

$(function(){
		$('#hdr').datagrid({
			singleSelect:true,
			striped:true,
			collapsible:true,
			url:'datagrid_data1.json',
			method:'get',
			pagination:true,
			pageSize:10,
			pageList: [10,20,50,100],
			 columns:[[
			 {field:'itemid',width:80},
			 {field:'productid',width:100},
			 {field:'listprice',width:80,align:'right'}
			 
			 ]]
		});
		
		alert($('#hdr').datagrid('getPager').data("pagination").options.pageList)		// 弹出10,20,50,100
		$('#hdr').datagrid({
			onLoadSuccess : function(data) {
				console.log("111")
			}
		});
		
		alert($('#hdr').datagrid('getPager').data("pagination").options.pageList)		// 弹出10,20,50,100
	});

2.通过获取pager对象进行分页,如下,这时,如果分页脚本后面出现datagrid事件渲染的画,就会出现意向不到的结果

$(function(){
		var p = $('#hdr').datagrid('getPager'); 
		$(p).pagination({ 
		    pageSize: 20,					//每页显示的记录条数,默认10 
		    pageList: [20,20,50,100],		//可以设置每页记录条数的列表 
		    beforePageText: '第',			//页数文本框前显示的汉字 
		    afterPageText: '页    共 {pages} 页', 
		    displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录'
		}); 
		
		alert($('#hdr').datagrid('getPager').data("pagination").options.pageList)		// 弹出20,20,50,100
		$('#hdr').datagrid({
			onLoadSuccess : function(data) {
				console.log("111")
			}
		});
		
		alert($('#hdr').datagrid('getPager').data("pagination").options.pageList)  // 弹出默认的10,20,30,40,50,并且之前设置的中文信息语言也没了
	});

由此推测:easyui datagrid事件绑定会重新渲染一遍datagrid组件,并且只认官方的datagrid配置进行渲染,其他类似$('#hdr').datagrid('getPager')进行设置的会失效,解决方法就是把这些脚本放到最后面,$("#id").datagrid({ 事件:function...})放前面即可,若有大神能解释其中源码实现原理就好了,小弟不才,错误之处还请指出


下面附上1个修改过后的datagrid实例源代码Basic.html,

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Basic DataGrid - jQuery EasyUI Demo</title>
	<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
	<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
	<link rel="stylesheet" type="text/css" href="../demo.css">
	<script type="text/javascript" src="../../jquery.min.js"></script>
	<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
</head>
<body>
	<h2>Basic DataGrid</h2>
	<p>The DataGrid is created from markup, no JavaScript code needed.</p>
	<div style="margin:20px 0;"></div>
	
	<table id="hdr" class="easyui-datagrid" title="Basic DataGrid" style="width:700px;height:250px"
			data-options="singleSelect:true,striped:true,collapsible:true,url:'datagrid_data1.json',method:'get',pagination:true,pageSize:10">
		<thead>
			<tr>
				<th data-options="field:'itemid',width:80">Item ID</th>
				<th data-options="field:'productid',width:100">Product</th>
				<th data-options="field:'listprice',width:80,align:'right'">List Price</th>
				<th data-options="field:'unitcost',width:80,align:'right'">Unit Cost</th>
				<th data-options="field:'attr1',width:250">Attribute</th>
				<th data-options="field:'status',width:60,align:'center'">Status</th>
			</tr>
		</thead>
	</table>
<script>

	$(function(){
		var p = $('#hdr').datagrid('getPager'); 
		$(p).pagination({ 
		    pageSize: 20,					//每页显示的记录条数,默认10 
		    pageList: [20,20,50,100],		//可以设置每页记录条数的列表 
		    beforePageText: '第',			//页数文本框前显示的汉字 
		    afterPageText: '页    共 {pages} 页', 
		    displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录'
		}); 
		
		alert($('#hdr').datagrid('getPager').data("pagination").options.pageList)		// 弹出20,20,50,100
		$('#hdr').datagrid({
			onLoadSuccess : function(data) {
				console.log("111")
			}
		});
		
		alert($('#hdr').datagrid('getPager').data("pagination").options.pageList)		// 弹出默认的10,20,30,40,50,并且之前渲染的中文脚本也被替换了
	});
	
	
</script>	
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值