コード例 #1
0
        /// <summary>
        /// 显示分页
        /// </summary>
        /// <param name="paginationData">PaginationData</param>
        /// <returns></returns>
        public static string Page(PaginationData paginationData)
        {
            if (paginationData.ShowPageCount % 2 == 0)
            {
                paginationData.ShowPageCount += 1;
            }

            int beginIndex = 0;
            int endIndex   = 0;

            int halfCount = (int)Math.Floor(paginationData.ShowPageCount * 0.5f);

            beginIndex = Math.Max(1, paginationData.PageIndex - halfCount);
            endIndex   = Math.Min(paginationData.PageCount, paginationData.PageIndex + halfCount);

            if (endIndex < paginationData.PageCount)
            {
                endIndex = Math.Min(beginIndex - 1 + paginationData.ShowPageCount, paginationData.PageCount);
            }
            if (beginIndex > paginationData.PageCount - paginationData.ShowPageCount)
            {
                beginIndex = Math.Max(1, paginationData.PageCount - paginationData.ShowPageCount + 1);
            }

            StringBuilder stringBuilder = new StringBuilder();

            if (paginationData.IsShowRecords)
            {
                stringBuilder.Append(string.Format(SPAN_FORMAT, paginationData.TotalCount, paginationData.PageCount, paginationData.RecordsClassName, paginationData.RecordsTotalCountClassName, paginationData.RecordsPageCountClassName));
            }

            #region 分页显示字符串拼装
            // 大于 1 页才显示分页信息
            if (paginationData.PageCount > 1)
            {
                if (paginationData.IsFull && paginationData.PageIndex > 1)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, "1"), paginationData.PageFirstText, paginationData.ItemStyle));
                }
                if (paginationData.IsFull && paginationData.PageIndex - 1 >= 1)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, (paginationData.PageIndex - 1).ToString()), paginationData.PagePrevText, paginationData.ItemStyle));
                }
                for (int currentIndex = beginIndex; currentIndex <= endIndex; currentIndex++)
                {
                    string itemClassName = paginationData.ItemClassName + " ";
                    if (currentIndex == paginationData.PageIndex)
                    {
                        itemClassName = itemClassName + paginationData.ActiveItemClassName;
                    }
                    stringBuilder.Append(string.Format(LI_FORMAT, itemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, currentIndex.ToString()), string.Format(paginationData.PageText, currentIndex), paginationData.ItemStyle));
                }
                if (paginationData.IsFull && paginationData.PageIndex + 1 <= paginationData.PageCount)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, (paginationData.PageIndex + 1).ToString()), paginationData.PageNextText, paginationData.ItemStyle));
                }
                if (paginationData.IsFull && paginationData.PageIndex < paginationData.PageCount)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, paginationData.PageCount.ToString()), paginationData.PageLastText, paginationData.ItemStyle));
                }
            }
            #endregion

            return(string.Format(UL_FORMAT, paginationData.ClassName, stringBuilder.ToString(), paginationData.Style));
        }
コード例 #2
0
        /// <summary>
        /// 显示分页
        /// </summary>
        /// <param name="paginationData">PaginationData</param>
        /// <returns></returns>
        public static string Page(PaginationData paginationData)
        {
            if (paginationData.ShowPageCount % 2 == 0)
            {
                paginationData.ShowPageCount += 1;
            }

            int beginIndex = 0;
            int endIndex   = 0;

            int halfCount = (int)Math.Floor(paginationData.ShowPageCount * 0.5f);

            beginIndex = Math.Max(1, paginationData.PageIndex - halfCount);
            endIndex   = Math.Min(paginationData.PageCount, paginationData.PageIndex + halfCount);

            if (endIndex < paginationData.PageCount)
            {
                endIndex = Math.Min(beginIndex - 1 + paginationData.ShowPageCount, paginationData.PageCount);
            }
            if (beginIndex > paginationData.PageCount - paginationData.ShowPageCount)
            {
                beginIndex = Math.Max(1, paginationData.PageCount - paginationData.ShowPageCount + 1);
            }

            StringBuilder stringBuilder = new StringBuilder();

            if (paginationData.IsShowRecords)
            {
                stringBuilder.Append(string.Format(SPAN_FORMAT, paginationData.TotalCount, paginationData.PageCount, paginationData.RecordsClassName, paginationData.RecordsTotalCountClassName, paginationData.RecordsPageCountClassName));
            }

            #region 分页显示字符串拼装
            // 大于 1 页才显示分页信息
            if (paginationData.PageCount > 1)
            {
                if (paginationData.IsFull && paginationData.PageIndex > 1)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, "1"), paginationData.PageFirstText, paginationData.ItemStyle));
                }
                if (paginationData.IsFull && paginationData.PageIndex - 1 >= 1)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, (paginationData.PageIndex - 1).ToString()), paginationData.PagePrevText, paginationData.ItemStyle));
                }
                for (int currentIndex = beginIndex; currentIndex <= endIndex; currentIndex++)
                {
                    string itemClassName = paginationData.ItemClassName + " ";
                    if (currentIndex == paginationData.PageIndex)
                    {
                        itemClassName = itemClassName + paginationData.ActiveItemClassName;
                    }
                    stringBuilder.Append(string.Format(LI_FORMAT, itemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, currentIndex.ToString()), string.Format(paginationData.PageText, currentIndex), paginationData.ItemStyle));
                }
                if (paginationData.IsFull && paginationData.PageIndex + 1 <= paginationData.PageCount)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, (paginationData.PageIndex + 1).ToString()), paginationData.PageNextText, paginationData.ItemStyle));
                }
                if (paginationData.IsFull && paginationData.PageIndex < paginationData.PageCount)
                {
                    stringBuilder.Append(string.Format(LI_FORMAT, paginationData.ItemClassName, paginationData.PageUrl.Replace(paginationData.PageFormat, paginationData.PageCount.ToString()), paginationData.PageLastText, paginationData.ItemStyle));
                }
                if (paginationData.ShowGoto)
                {
                    stringBuilder.Append(string.Format("<li class=\"pull-right\"><div class=\"input-group\" style=\"margin-left:10px;\"><input type=\"text\" id=\"txt_{0}\" value=\"{3}\" class=\"form-control\" style=\"width:50px;height:32px;\" /><span class=\"input-group-btn\"><input class=\"btn btn-primary\" onclick=\"location.href='{1}'.replace('$-$', document.getElementById('txt_{0}').value);\" style=\"height:32px;\" type=\"button\" value=\"{2}\" /></span></li>", System.Guid.NewGuid().ToString("N"), paginationData.PageUrl.Replace(paginationData.PageFormat, "$-$"), paginationData.GotoText, paginationData.PageIndex));
                }
            }
            #endregion

            return(string.Format(UL_FORMAT, paginationData.ClassName, stringBuilder.ToString(), paginationData.Style));
        }