/// <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); }