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

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" onclick="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

我来评几句
登录后评论

已发表评论数(0)

相关站点
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值