Jquery easyui从零单排之datagrid排序
来源:互联网 发布:昏君培养系统知风 编辑:程序博客网 时间:2024/05/06 03:40
上篇文章,写了如何实现datagrid的客户端分页,这次来实现datagrid的排序功能。
一、前台页面代码:
<head> <meta charset="UTF-8"> <title>Start from zero</title> <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.1/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.1/themes/icon.css"> <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.1/demo/demo.css"> <script type="text/javascript" src="jquery-easyui-1.4.1/jquery.min.js"></script> <script type="text/javascript" src="jquery-easyui-1.4.1/jquery.easyui.min.js"></script></head><body> <form id="fm"> <table id="dg" title="Client Side Pagination" toolbar="#tb" fitcolumns="true" rownumbers="true" showfooter="true" style="width: 640px; height: 600px" data-options="remoteSort:false, rownumbers:true,singleSelect:false,autoRowHeight:true,pagination:true, showFooter: true, fitColumns: true,pageSize:20"> <thead frozen="true"> <tr> <th data-options="field:'ck',checkbox:true,width:40"> </th> <th data-options="field:'LoginID',width:100" sortable="true"> LoginID </th> </tr> </thead> <thead> <tr> <th data-options="field:'UserName',width:120" sortable="true"> UserName </th> <th data-options="field:'Sex',align:'center',width:80" sortable="true"> Sex </th> <th data-options="field:'Department',width:140" sortable="true"> Department </th> <th data-options="field:'Age',width:80" sortable="true"> Age </th> </tr> </thead> </table> <script type="text/javascript"> function getData() { $('#dg').datagrid({ url: 'Handler.ashx', method: 'get', striped: true, title: "员工列表", onSortColumn: function (sort, order) { //alert("sort:" + sort + ",order:" + order + ""); $('#dg').datagrid('reload', { sort: sort, order: order }); } }) } function pagerFilter(data) { if (typeof data.length == 'number' && typeof data.splice == 'function') {// is array data = { total: data.length, rows: data } } var dg = $(this); var opts = dg.datagrid('options'); 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); } }); if (!data.originalRows) { data.originalRows = (data.rows); } var start = (opts.pageNumber - 1) * parseInt(opts.pageSize); var end = start + parseInt(opts.pageSize); data.rows = (data.originalRows.slice(start, end)); return data; } $(function () { $('#dg').datagrid({ loadFilter: pagerFilter }).datagrid('loadData', getData()); }); </script> </form></body></html>关键代码在这里:
1.
<th data-options="field:'LoginID',width:100" <span style="color:#ff0000;">sortable="true"</span>> LoginID </th>
这里需要把sortable属性设置true,即对其激活。
2.
onSortColumn: function (sort, order) { //alert("sort:" + sort + ",order:" + order + ""); $('#dg').datagrid('reload', { sort: sort, order: order }); }
这里是向数据处理页面传递需要对其排序的字段sort(比如我设置的字段LoginID,当然也可以是其他字段), 以及按何种方式排序order(asc,desc)。
二、处理代码
<%@ WebHandler Language="C#" Class="Handler" %>using System;using System.Web;using System.Data;using System.Data.SqlClient;using System.IO;using System.Collections.Generic;using System.Text.RegularExpressions;using Newtonsoft.Json;using System.Text;public class Handler : IHttpHandler { public void ProcessRequest(HttpContext context) { string sort = !string.IsNullOrEmpty(context.Request.QueryString["sort"])?context.Request.QueryString["sort"]:"LoginID"; string order = !string.IsNullOrEmpty(context.Request.QueryString["order"])?context.Request.QueryString["order"]:"asc"; Query(context,sort,order); } public void Query(HttpContext context,string sort,string order) { context.Response.ContentType = "text/plain"; SqlHelp sqla = new SqlHelp(); string stra = "select * from tTestTable order by "+sort+" "+order; DataTable dta = sqla.GetDataTable(stra); sqla.SqlClose(); string json = JsonConvert.SerializeObject(dta); context.Response.Write(json); } public bool IsReusable { get { return false; } }}
这里就不用多复述了,就是根据传过来的值进行sql查询,通过Newtonsoft.Json把DataTable转换为Json数据返回。
三、运行结果截图:
以上基本上就实现了datagrid的排序功能。
0 0
- Jquery easyui从零单排之datagrid排序
- Jquery easyui从零单排之datagrid数据绑定
- Jquery easyui从零单排之datagrid分页
- Jquery easyui从零单排之datagrid单行数据删除
- Jquery easyui从零单排之datagrid查询
- Jquery easyui从零单排之datagrid多行数据删除
- Jquery easyui从零单排之datagrid添加行单击事件
- Jquery easyui从零单排之datagrid整表编辑保存到数据库
- 从零单排之CSS3
- Android从零单排之签名打包
- 从零单排Opencv之开篇
- android从零单排之openFileOutput()使用
- android从零单排之Environment
- Android从零单排之签名打包
- Java源码之从零单排--ArrayList
- 从零基础认识easyUI的dataGrid
- 从零单排1
- 从零单排2
- 高端技巧:如何使用#define定义变量
- Android-Androidstudio集成git开发环境
- Struts2学习——(九)Struts2标签III
- saltstack一些简单总结--关于salt-key命令的一些(3)
- python 学习笔记二之sklearn 库
- Jquery easyui从零单排之datagrid排序
- IOS_多线程编程3 - NSOperationQueue
- Python 程序员经常犯的 10 个错误
- FilenameFilter介绍
- IOS_多线程编程4 - GCD
- StringUtils工具类
- Oracle实现POSTGRESQL的generate_series功能
- 一些不错的博客专栏地址(持续更新)
- CABasicAnimation的基本使用方法(移动·旋转·放大·缩小)