MVC简捷调用EasyUI的datagrid

一直想在项目中使用EasyUi的datagrid,但种种原因,没有实现。

这两天在开发一个项目中,愿望终于得以实现。

先看效果:

实现步骤是这样的:

1,在页面中画dataGrid,具体代码如下:

    <table id="UserListTb" class="easyui-datagrid" title="用户列表">
</table>

function ListLoad() {
var columnsSetting = [
{ field: ‘EnName‘, title: ‘英文名‘, width: 100,sortable:true,
formatter: function (val, rowData) {
var url = "/User/Index/66666666";
return "<a href=\‘" + url + "\‘);>"+rowData.EnName+"</a>";
}
},
{ field: ‘CnName‘, title: ‘中文名‘, width: 80 },
{ field: ‘DomainName‘, title: ‘域帐号‘, width: 120 },
{ field: ‘ID‘, title: ‘ID‘, width: 80, align: ‘right‘ },
{ field: ‘unitcost‘, title: ‘部门‘, width: 80, align: ‘right‘ },
{ field: ‘attr1‘, title: ‘权限组‘, width: 250 },
{ field: ‘status‘, title: ‘状态‘, width: 60, align: ‘center‘ }
];

$(‘#UserListTb‘).datagrid({
url: ‘/User/GetUserList‘,
queryParams: { name: "wuf"
},
method: ‘get‘,
width: 1077,
height: 250,
fitColumns: true,
pagination: true,
pageSize: 20,
singleSelect: true,
showPageList: false,
pageList: [1,20, 50, 100],
rownumbers: true,
nowrap: false,
loadMsg: ‘Load……‘,
columns: [columnsSetting],
onLoadSuccess: function (row) {},
onLoadError: function (arguments) {}
});
}

2,后台接收参数,返回需要的Json数据。

        /// <summary>
/// 用户列表Json
/// </summary>
/// <returns></returns>
public ActionResult GetUserList()
{
int currentPageIndex = RequestExtension.GetQueryString<int>("page", 0);
int pagesize = RequestExtension.GetQueryString<int>("rows", 0);
String sort = RequestExtension.GetQueryString<String>("sort", "");
String order = RequestExtension.GetQueryString<String>("order", "");

String name = RequestExtension.GetQueryString<String>("name", "");

Pagination pagin = new Pagination
{
CurrentPageIndex = currentPageIndex,
PageSize = pagesize,
OrderBy = String.IsNullOrEmpty(sort) ? "" : String.Concat(sort + " " + order)
};

UsersModel condition = new UsersModel();

KeyValuePair<Pagination, IList<UsersModel>> list = usersRepository.UsersPagination(pagin, condition);

return JsonExtension.JsonPagination(list.Value, pagin.CurrentPageIndex, pagin.PageSize, list.Key.TotalItemCount);
}

3,关键代码,实现Json分页的方法。

        /// <summary>
/// 分页处理
/// </summary>
/// <param name="dataList"></param>
/// <param name="page"></param>
/// <param name="rows"></param>
/// <returns></returns>
public static JsonResult JsonPagination(IEnumerable<dynamic> dataList, int page, int rows, int dataListAuctalCount = -1)
{
var result = dataList;
Dictionary<string, object> json = new Dictionary<string, object>();
int total = dataListAuctalCount;
if (total == -1 && dataList != null)
{
//自动分页
total = dataList.Count();
result = dataList.Skip((page - 1) * rows).Take(rows).ToList();
}
json.Add("total", total);
json.Add("rows", result);
return new JsonResult() { Data = json, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}

4,数据分页查询代码

        public KeyValuePair<Pagination, IList<UsersModel>> UsersPagination(Pagination pagin, UsersModel condition)
{
using (SqlConnection conn = DapperFactory.CrateOpenConnection())
{
String condtionStr = "";
String orderBy = "CreateTime DESC";
if (!String.IsNullOrEmpty(pagin.OrderBy))
{
orderBy = pagin.OrderBy;
}

String executeQuery = String.Format(@"WITH pagintable AS(
SELECT ROW_NUMBER() OVER(ORDER BY {1} )AS RowID, ID, DomainName, EnName, PassWord, CnName, Email, DeptID, RoleId, CreateMan, CreateTime, EditMan, EditTime, IsValid FROM Users
WHERE 1= 1 {0} )
SELECT * FROM pagintable where RowID between ((@CurrentPageIndex - 1) * @PageSize) + 1 and (@CurrentPageIndex * @PageSize)", condtionStr, orderBy);
String executeCount = String.Format("SELECT COUNT(*) AS CountNum FROM Users WHERE 1= 1 {0} ", condtionStr);
var mixCondition = new
{
CurrentPageIndex = pagin.CurrentPageIndex,
PageSize = pagin.PageSize
};
List<UsersModel> listScore = conn.Query<UsersModel>(executeQuery, mixCondition).ToList();
pagin.TotalItemCount = conn.Query<Int32>(executeCount, mixCondition).SingleOrDefault<Int32>();
KeyValuePair<Pagination, IList<UsersModel>> result =
new KeyValuePair<Pagination, IList<UsersModel>>(pagin, listScore);
return result;
}
}

看着这精简的代码,和界面上强大的功能,真是有种IT人的自豪感,亲爱的您,是不是也有这种感觉呢?

时间: 2025-01-05 12:38:43

MVC简捷调用EasyUI的datagrid的相关文章

.net MVC模式下easyui datagrid控件分页

此参照一位仁兄代码,稍作修改 视图代码: <div id="tab" class="easyui-tabs" data-options="tools:'#tab-tools'" style="width:800px;height:400px"> <div title="****" style="padding:0px;"> <div class="

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装 前言:今天经理买了一个诺基亚的Windows Phone 8系统,特感兴趣,所以在哪里看了很长时间,这篇文章就写的有点迟, 从这个Demo开始到现在我已经写了4篇博客了,终于可以看到页面的东

SpringMVC+easyUI中datagrid分页实现_2014.5.1

一.概述 SpringMVC: 1.是面对方法级变量的,在操作起来会比struts方便一些(structs是类级变量),具体体现在了srpingMVC的注解上面, 如@RequstMapping("/login"),而且对于返回值ModelAndView这也是一大亮点,既可以返回一个页面(View),再加上@ResponseBody注解以后就可以返回一个      模型对象(也就是一种数据结构). 2.对于方法级传入的参数操作起来也相当方便,比如本例中,在加载DataGrid时,会像后

JQuery EasyUI的datagrid的使用方式总结

JQuery EasyUI的datagrid的使用方式总结第一步:添加样式和js脚本在前台添加展示数据表格的table元素 例如: <div> <table id="tt" style="width: 700px;" title="标题,可以使用代码进行初始化,也可以使用这种属性的方式" iconcls="icon-edit"> </table> </div> 注:表格的属性可以

利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序 HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据,难免会含有方便操作的 主键ID这列的记录.现在项目需要在easyUI的DataGrid中显示的数据能全部导出Excel,包括DataGrid中的中文标题,其他的统统不 要. 完成该功能所需的工具和环境:Newtonsoft.Json序列化和反序列化类库.easyUI前端UI框架.HttpHandl

在EasyUI的DataGrid中嵌入Combobox

在做项目时,需要在EasyUI的DataGrid中嵌入Combobox,花了好几天功夫,在大家的帮助下,终于看到了它的庐山真面: 核心代码如下: <html> <head> @*添加Jquery EasyUI的样式*@ <link href="@Url.Content("../../Content/JqueryEasyUI/themes/default/easyui.css")" rel="stylesheet" /

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现 前言:通过前面的五篇博客我们已经对权限系统的后台架构进行了详细的说明,那么我再前面的博客中也说到了我们的后台架构还会再改的,我准备这段时间我们继续完善我们的后台