MVC简捷调用EasyUI的datagrid

2020-12-13 02:29

阅读:466

标签:des   style   blog   class   code   tar   

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

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

先看效果:

soscw.com,搜素材

实现步骤是这样的:

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

soscw.com,搜素材soscw.com,搜素材 View Code

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

soscw.com,搜素材soscw.com,搜素材
        /// 
        /// 用户列表Json
        /// 
        /// 
        public ActionResult GetUserList()
        {
            int currentPageIndex = RequestExtension.GetQueryStringint>("page", 0);
            int pagesize = RequestExtension.GetQueryStringint>("rows", 0);
            String sort = RequestExtension.GetQueryString("sort", "");
            String order = RequestExtension.GetQueryString("order", "");

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

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

            UsersModel condition = new UsersModel();

            KeyValuePair> list = usersRepository.UsersPagination(pagin, condition);

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

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

soscw.com,搜素材soscw.com,搜素材
        /// 
        /// 分页处理
        /// 
        /// 
        /// 
        /// 
        /// 
        public static JsonResult JsonPagination(IEnumerable dataList, int page, int rows, int dataListAuctalCount = -1)
        {
            var result = dataList;
            Dictionarystring, object> json = new Dictionarystring, 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 };
        }
View Code

4,数据分页查询代码

soscw.com,搜素材soscw.com,搜素材
        public KeyValuePair> 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 listScore = conn.Query(executeQuery, mixCondition).ToList();
                pagin.TotalItemCount = conn.Query(executeCount, mixCondition).SingleOrDefault();
                KeyValuePair> result =
                    new KeyValuePair>(pagin, listScore);
                return result;
            }
        }
View Code

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

 

MVC简捷调用EasyUI的datagrid,搜素材,soscw.com

MVC简捷调用EasyUI的datagrid

标签:des   style   blog   class   code   tar   

原文地址:http://www.cnblogs.com/ushou/p/3718610.html


评论


亲,登录后才可以留言!