示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="startItem"></param>
        /// <param name="itemsPerPage"></param>
        /// <param name="columns"></param>
        /// <param name="sortCol"></param>
        /// <param name="sortDir"></param>
        /// <param name="sql"></param>
        /// <returns></returns>
        public PageInfo <T> Page <T>(int startItem, int itemsPerPage, string columns, int?sortCol, string sortDir, Sql sql)
        {
            int startPage = (startItem == 0) ? 1 : startItem / itemsPerPage + 1;

            if (sortCol.HasValue && !string.IsNullOrEmpty(columns))
            {
                string[] sCol = columns.Split(',');

                if (sortCol < sCol.Length && !string.IsNullOrEmpty(sCol[sortCol.Value]))
                {
                    sql.Append(string.Format(" order by {0} {1}", sCol[sortCol.Value], sortDir));
                }
            }

            Page <T> page = _database.Page <T>(startPage, itemsPerPage, sql);

            PageInfo <T> pageInfo = new PageInfo <T>()
            {
                CurrentPageNo = page.CurrentPage,
                TotalPageNo   = page.TotalPages,
                TotalItems    = page.TotalItems,
                ItemsPerPage  = page.ItemsPerPage,
                Items         = page.Items
            };

            return(pageInfo);
        }