目录:
基于asp.net + easyui框架,一步步学习easyui-datagrid——界面(一)
基于asp.net + easyui框架,一步步学习easyui-datagrid——实现分页和搜索(二)
基于asp.net + easyui框架,一步步学习easyui-datagrid——实现添加、编辑、删除(三)
基于asp.net + easyui框架,一步步学习easyui-datagrid——完成,总结(四)
上篇博客我只是将界面的部分完成了,继续上篇博客的内容,这篇博客我们需要将数据库中的记录显示到界面上,并实现数据的分页显示。
曾经我写过分页的博客,分页很简单,本质区别在于分页时从数据库读取信息的方式:假分页:一次性读取数据;真分页:多次读取数据。datagrid使用的是真分页,将记录从数据库查询出来就行了。
下面我们看一下要实现的界面:
说实话,加载数据并实现分页和搜索的功能相对而言是很简单,无非就是调用一般处理程序,只要你会一般处理程序就没有任何问题。
在上篇博客中,我已将datagrid要调用的一般处理程序的URL写好了,所以我们现在只需要写一般处理程序的代码和后台的代码就好了。在一般处理程序中,我们将分页和查询功能巧妙的整合到了一起。
搜索的js代码
//获取参数 function getQueryParams(queryParams) { var StartTime = $("#StartTime").datebox("getValue"); var EndTime = $("#EndTime").datebox("getValue"); var AdminName = document.getElementById("AdminName").value; var QuanXian = document.getElementById("quanxian").value; //$("#quanxian").combobox("getValue"); queryParams.StartTime = StartTime; queryParams.EndTime = EndTime; queryParams.AdminName = AdminName; queryParams.QuanXian = QuanXian; return queryParams; } //增加查询参数,重新加载表格 function reloadgrid() { //查询参数直接添加在queryParams中 var queryParams = $('#tt').datagrid('options').queryParams; getQueryParams(queryParams); $('#tt').datagrid('options').queryParams = queryParams; $("#tt").datagrid('reload'); }
一般处理程序SetAdmin.ashx
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Text; namespace GoodCommunitySystem.admin.UserManager { /// <summary> /// SetAdmin 的摘要说明 /// </summary> public class SetAdmin : IHttpHandler { BLL.adminInfoBLL admininfobll = new BLL.adminInfoBLL(); Entity.adminInfoEntity enadmininfo = new Entity.adminInfoEntity(); public void ProcessRequest(HttpContext context) { //调用查询方法 Query(context); } public bool IsReusable { get { return false; } } /// <summary> /// 查询记录 /// </summary> /// <param name="context"></param> public void Query(HttpContext context) { context.Response.ContentType = "text/plain"; //=============================================================== //获取查询条件:【用户id,开始时间,结束时间,关键字】 string AdminName, startTime, endTime, QuanXian; AdminName = startTime = endTime = QuanXian = ""; //获取前台传来的值 if (null != context.Request.QueryString["AdminName"]) {//获取前台传来的值 AdminName = context.Request.QueryString["AdminName"].ToString().Trim(); } if (null != context.Request.QueryString["StartTime"]) { startTime = context.Request.QueryString["StartTime"].ToString().Trim(); } if (null != context.Request.QueryString["EndTime"]) { endTime = context.Request.QueryString["EndTime"].ToString().Trim(); } if (null != context.Request.QueryString["QuanXian"]) { QuanXian = context.Request.QueryString["QuanXian"].ToString().Trim(); } //================================================================ //获取分页和排序信息:页大小,页码,排序方式,排序字段 int pageRows, page; pageRows = 10; page = 1; string order, sort, oderby; order = sort = oderby = ""; if (null != context.Request.QueryString["rows"]) { pageRows = int.Parse(context.Request.QueryString["rows"].ToString().Trim()); } if (null != context.Request.QueryString["page"]) { page = int.Parse(context.Request.QueryString["page"].ToString().Trim()); } if (null != context.Request.QueryString["sort"]) { order = context.Request.QueryString["sort"].ToString().Trim(); } if (null != context.Request.QueryString["order"]) { sort = context.Request.QueryString["order"].ToString().Trim(); } //=================================================================== //组合查询语句:条件+排序 StringBuilder strWhere = new StringBuilder(); if (AdminName != "") { strWhere.AppendFormat(" WorkerRealName like '%{0}%' and ", AdminName); } if (QuanXian != "") { strWhere.AppendFormat(" AdminRightName like '%{0}%' and ", QuanXian); } if (startTime != "") { strWhere.AppendFormat(" ActiveDate >= '{0}' and ", startTime); } if (endTime != "") { strWhere.AppendFormat(" ActiveDate <= '{0}' and ", endTime); } //删除多余的and int startindex = strWhere.ToString().LastIndexOf("and");//获取最后一个and的位置 if (startindex >= 0) { strWhere.Remove(startindex, 3);//删除多余的and关键字 } if (sort != "" && order != "") { //strWhere.AppendFormat(" order by {0} {1}", sort, order);//添加排序 oderby = order + " " + sort; } //DataSet ds = Bnotice.GetList(strWhere.ToString()); //调用不分页的getlist //调用分页的GetList方法 DataSet ds = admininfobll.GetListByPage(strWhere.ToString(), oderby, (page - 1) * pageRows + 1, page * pageRows); int count = admininfobll.GetRecordCount(strWhere.ToString());//获取条数 string strJson = ToJson.Dataset2Json(ds, count);//DataSet数据转化为Json数据 context.Response.Write(strJson);//返回给前台页面 context.Response.End(); } }
注:不知道前台页面怎么接收数据,请看第一篇博文:基于asp.net + easyui框架,一步步学习easyui-datagrid——界面(一)
调用D层实现分页的两个方法:
/// <summary> /// 获取记录总数 /// </summary> public int GetRecordCount(string strWhere) { StringBuilder strSql=new StringBuilder(); strSql.Append("select count(1) FROM V_admin_MgPersonFiles "); if(strWhere.Trim()!="") { strSql.Append(" where "+strWhere); } object obj = DbHelperSQL.GetSingle(strSql.ToString()); if (obj == null) { return 0; } else { return Convert.ToInt32(obj); } } /// <summary> /// 分页获取数据列表 /// </summary> public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex) { StringBuilder strSql=new StringBuilder(); strSql.Append("SELECT * FROM ( "); strSql.Append(" SELECT ROW_NUMBER() OVER ("); if (!string.IsNullOrEmpty(orderby.Trim())) { strSql.Append("order by T." + orderby ); } else { strSql.Append("order by T.AdminID desc"); } strSql.Append(")AS Row, T.* from V_admin_MgPersonFiles T "); if (!string.IsNullOrEmpty(strWhere.Trim())) { strSql.Append(" WHERE " + strWhere); } strSql.Append(" ) TT"); strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex); return DbHelperSQL.Query(strSql.ToString()); }
上面还有一个难点是:将dataset的数据集转换成json格式,下面我封装了一个类:ToJson
public class ToJson { #region DataSet转换成Json格式 /// <summary> /// DataSet转换成Json格式 /// </summary> /// <param name="ds">DataSet</param> /// <returns></returns> public static string Dataset2Json(DataSet ds, int total = -1) { StringBuilder json = new StringBuilder(); foreach (DataTable dt in ds.Tables) { //{"total":5,"rows":[ json.Append("{\"total\":"); if (total == -1) { json.Append(dt.Rows.Count); } else { json.Append(total); } json.Append(",\"rows\":["); json.Append(DataTable2Json(dt)); json.Append("]}"); } return json.ToString(); } #endregion #region dataTable转换成Json格式 /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static string DataTable2Json(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder(); for (int i = 0; i < dt.Rows.Count; i++) { jsonBuilder.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { jsonBuilder.Append("\""); jsonBuilder.Append(dt.Columns[j].ColumnName); jsonBuilder.Append("\":\""); jsonBuilder.Append(dt.Rows[i][j].ToString()); jsonBuilder.Append("\","); } if (dt.Columns.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } jsonBuilder.Append("},"); } if (dt.Rows.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } return jsonBuilder.ToString(); } #endregion dataTable转换成Json格式 }
这篇博客主要给大家介绍datagrid如何实现分页和搜索的功能。真的跟宣传广告一样,It's so easy。。。
========================================================================================================================
基于asp.net+easyui框架的系列博文:
使用Jquery+EasyUI框架开发项目+下载+帮助--EasyUI的简介
Asp.net之真假分页大揭秘、使用AspNetPager实现真分页
Asp.Net构架(Http请求处理流程)、Asp.Net 构架(Http Handler 介绍)、Asp.Net 构架(HttpModule 介绍)
基于asp.net + easyui框架,js实现上传图片之前判断图片格式,同时实现预览,兼容各种浏览器+下载
基于asp.net+ easyui框架,js提交图片,实现先上传图片再提交表单
基于asp.net + easyui框架,一步步学习easyui-datagrid——界面(一)
基于asp.net + easyui框架,一步步学习easyui-datagrid——实现分页和搜索(二)
基于asp.net + easyui框架,一步步学习easyui-datagrid——实现添加、编辑、删除(三)
基于asp.net + easyui框架,一步步学习easyui-datagrid——完成,总结(四)
=========================================================================================================================
对于json:不知道怎么传值?不知道返回什么样值?不知道如何拼接json串的童鞋有福了,给大家推荐一篇文章:
http://blog.csdn.net/gxq741718618/article/details/41130509
相关推荐
本系统基于.Net框架与EasyUI库构建,旨在提供一个强大、美观且用户友好的后台操作界面。下面将详细探讨.Net框架与EasyUI的相关知识点,以及它们如何协同构建出强大的后台管理系统。 .Net框架是由微软公司开发的一种...
.NET MVC + EasyUI 后台管理系统是基于微软的ASP.NET MVC技术栈,结合了流行的前端框架EasyUI,用于构建高效、美观的后台管理界面。在VS 2015集成开发环境中,MVC 4提供了强大的模型-视图-控制器(MVC)架构,为Web...
这个项目实例提供了从后端到前端的完整开发体验,涵盖了ASP.NET MVC4的项目结构、路由、模型绑定、控制器操作,以及JQuery EasyUI的UI组件应用,对于想要学习这两种技术的开发者来说,是一个非常有价值的参考和实践...
在结合ASP.NET框架时,DataGrid能有效地将服务器端的数据动态地呈现到客户端,提供排序、分页、过滤和编辑等功能,提升用户体验。在本文中,我们将深入探讨如何在ASP.NET环境中使用EasyUI的DataGrid显示数据。 首先...
通过以上步骤,我们成功地在ASP.NET MVC项目中实现了使用EasyUI框架的Datagrid控件进行数据分页的功能。这种方法不仅提高了用户体验,同时也使后台的数据管理更加高效便捷。希望本教程能帮助读者更好地理解如何在...
数据库管理系统,不管是桌面版,还是网页版,我觉得最重要的功能是:增删改查+分页。文档里面的例子就是asp.net web form + easy ui 的datagrid。简单的演示了这五个重要功能。请用vs2010运行,数据库没有给出。
EasyUI 是一个基于 jQuery 的前端框架,用于快速构建用户界面,尤其适合开发管理类Web应用。其中 Datagrid 是 EasyUI 的一个重要组件,它提供了一种表格形式的数据展示和操作功能。"easyui-datagrid2-demo.zip" 文件...
(例子涉及两张表(用户表+权限表),datagrid分页有两种方式,请参考 UserInfoDAL.cs页面方法: getPage2005和getPage2012 ) EasyUI 1.5中文版文档下载地址:http://download.csdn.net/detail/jx_521/9647628
本示例项目"落阳-利用NPOI将EasyuiDatagrid数据导出到Excel-ASP.NET MVC Demo"提供了一个解决方案,通过使用NPOI库来实现这一功能。 NPOI是一个强大的.NET库,它允许开发者在.NET环境中读写Microsoft Office文件,...
通过以上步骤,我们可以利用EasyUI的datagrid和tree组件,结合ASP.NET技术,实现与数据库的交互,为开发初学者提供了一个基础但实用的Web应用框架。在实际项目中,还可以根据需求扩展功能,如添加分页、搜索、排序等...
MVC3是微软ASP.NET框架的一个版本,提供了更强大的功能和更好的性能。EasyUI则是一款基于jQuery的UI组件库,它提供了丰富的界面元素,如表格、表单、下拉框、按钮等,使得开发者能够快速构建出美观且响应式的用户...
EasyUI 是一个基于 jQuery 的前端框架,主要用于构建用户界面,尤其在Web应用中提供丰富的组件和样式,使得开发者能够快速创建美观且功能齐全的页面。DataGrid 是 EasyUI 中的一个核心组件,它是一个数据表格,可以...
1. **数据绑定**:在ASP.NET中,可以通过GridView、ListView等控件来展示数据,配合jQuery EasyUI的datagrid组件,可以实现动态加载和分页,提高用户体验。 2. **异步处理**:ASP.NET的ASHX(HttpHandler)接口可...
WebAPI是ASP.NET框架的一部分,用于构建RESTful服务。在建筑材料管理中,WebAPI允许远程客户端(如网页、移动应用)通过HTTP协议获取和更新数据。例如,可以通过API获取材料库存、添加新的供应商信息或更新材料价格...
【EasyUI ASP.NET Demo JSOn】是一个基于ASP.NET技术并结合EasyUI框架的演示项目,主要展示了如何在ASP.NET环境中利用EasyUI库进行JSON数据的处理和展示。EasyUI是一款轻量级、易于使用的JavaScript库,它基于jQuery...
EasyUI 的 datagrid 通过设置 `pagination` 属性和相关参数,可以轻松实现前端的分页显示。 4. **数据绑定**:EasyUI 的 datagrid 可以与后端数据源进行绑定,实现数据的自动更新。通过配置 `url` 参数指向控制器的...
jQuery EasyUI 是一个基于 jQuery 的前端开发框架,它简化了网页用户界面的构建,提供了丰富的组件和主题,如对话框、表格、下拉菜单、树形控件等。这个资源包是1.3.6版本的全中文API汉化文档,对于中文使用者来说,...
jQuery EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,可以帮助开发者快速构建具有专业界面和交互的Web应用程序。在ASP.NET中,jQuery EasyUI可以与后端的C#或VB.NET代码紧密结合,实现数据...
- **WikEasyUIDemo**:这是Web应用的主要部分,包含ASP.NET页面和脚本文件,如.aspx和.js文件,实现了前端的EasyUI界面和jQuery逻辑。 - **DB_51aspx**:可能是一个数据库配置文件或者数据库连接字符串,用于连接到...