easyui datagrid 客户端搜索、分页、排序

easyui datagrid的排序默认是服务器端排序,可以用sorter实现客户端排序[2];客户端分页可用filter实现[3];客户端搜索同样可以用filter实现。

不多说直接上代码:

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<meta name="keywords" content="jquery,ui,easy,easyui,web">
	<meta name="description" content="easyui help you build your web page easily!">
	<title>jQuery EasyUI Demo</title>
	<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css">
	<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css">
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
	<script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
  
	<script type="text/javascript">
		    $(function(){
            $('#tt').datagrid({loadFilter:pagerFilter}).datagrid();
        });

	function doSearch(){
    $('#tt').datagrid({searchValue: $('#search_name').val()});
  }
  
       function mysort(a,b){
				   return (a > b ? 1 : -1);
       }

        function pagerFilter(data){
            if (typeof data.length == 'number' && typeof data.splice == 'function'){
                data = {
                    total: data.length,
                    rows: data,
                    originalTotal: data.length
                }
            }
            var dg = $(this);
            
            var opts = dg.datagrid('options');
            
            if (!data.originalRows){
                data.originalRows = (data.rows);
            }

            if (opts.searchValue) {
            	data.currOriginalRows = [];
            	for (var k in data.originalRows) {
            		row = data.originalRows[k];
            		if(row.name.match(opts.searchValue)) {
            			data.currOriginalRows.push(row);
            		}
            	}
            	data.total = data.currOriginalRows.length;
            	data.originalTotal;
            }
            else {
            	data.currOriginalRows = data.originalRows;
            	data.total = data.originalTotal;
            }
            
            var pager = dg.datagrid('getPager');
            pager.pagination({
                onSelectPage:function(pageNum, pageSize){
                    opts.pageNumber = pageNum;
                    opts.pageSize = pageSize;
                    pager.pagination('refresh',{
                        pageNumber:pageNum,
                        pageSize:pageSize
                    });
                    dg.datagrid('loadData',data);
                }
            });

            var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
            var end = start + parseInt(opts.pageSize);
            data.rows = (data.currOriginalRows.slice(start, end));
            return data;
        }

  </script>
</head>
<body>
	<h1>DataGrid</h1>
	
	<table id="tt" title="Column Group" class="easyui-datagrid" style="width:1060px;height:390px"
			url="data/items7.json"
			singleSelect="true" iconCls="icon-save" rownumbers="true" pagination="true"
			toolbar="#tb"
			remoteSort="false">
		<thead>
			<tr>
				<th field="name" width="180" align="right" sortable="true" sorter="mysort">name</th>
				<th field="url" width="680" align="right">url</th>
			</tr>
		</thead>
	</table>
	
	<div id="tb" style="padding:3px">
    <span>name</span>
    <input id="search_name" style="line-height:26px;border:1px solid #ccc">
    <a href="#" class="easyui-linkbutton" plain="true" οnclick="doSearch()">Search</a>
  </div>
	
</body>
</html>



参考:

[1] http://www.jeasyui.com/tutorial/datagrid/datagrid24.php

[2] http://www.jeasyui.com/tutorial/datagrid/datagrid14.php

[3] http://blog.hiter.org/2013/07/realization-of-easyui-datagrid-paging-at-the-front-desk.html




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值