using System;
using System.Web;

namespace UUN
{
    public class 后台分页
    {
        public int 总记录数;
        public int 总页数;
        public int 当前页;
        public String 地址;
        public 后台分页(int 总记录数, int 当前页, int 一页显示记录,String 地址)
        {
            this.总记录数 = 总记录数;
            this.总页数 = 常用.计算总页数(总记录数, 一页显示记录);
            this.当前页 = 常用.计算当前页(总页数, 当前页);
            this.地址 = 地址;
        }
        private String 生成地址(int 页码,bool 是否HTM编码)
        {
            String 返回值;
            if (地址.IndexOf('?') == -1)
                返回值= 地址 + "?page=" + 页码;
            else
                返回值= 地址 + "&page=" + 页码;
            return 是否HTM编码 ? HttpContext.Current.Server.HtmlEncode(返回值) : 返回值;
        }
        private String 生成表单参数()
        {
            if (地址.IndexOf('?') == -1)
                return "";
            HttpContext HC=HttpContext.Current;

            String[] 地址数组 = 地址.Split('?');
            String[] 参数数组 = 地址数组[1].Split('&');
            String 返回值 = "";
            for (int i = 0; i < 参数数组.Length; i++)
            {
                String[] 值数组 = 参数数组[i].Split('=');
                返回值 += "<input type=\"hidden\" name=\"" + HC.Server.HtmlEncode(值数组[0]) + "\" value=\"" + HC.Server.HtmlEncode(HC.Server.UrlDecode(值数组[1])) + "\" />";
            }
            return 返回值;
        }
        public String 生成代码()
        {
            HttpContext HC=HttpContext.Current;
            if (总页数 < 2)
                return "";

            String 返回值 = "<a href=\"" + 生成地址(1, true) + "\">首页</a>&nbsp;&nbsp;&nbsp;&nbsp;";
            if (当前页 > 1)
                返回值 += "<a href=\"" + 生成地址(当前页 - 1, true) + "\">上一页</a>&nbsp;&nbsp;&nbsp;&nbsp;";
            else
                返回值 += "上一页&nbsp;&nbsp;&nbsp;&nbsp;";
            if (当前页 < 总页数)
                返回值 += "<a href=\"" + 生成地址(当前页 + 1, true) + "\">下一页</a>&nbsp;&nbsp;&nbsp;&nbsp;";
            else
                返回值 += "下一页&nbsp;&nbsp;&nbsp;&nbsp;";
            返回值 += "<a href=\"" + 生成地址(总页数, true) + "\">尾页</a>&nbsp;&nbsp;&nbsp;&nbsp;";
            返回值 += "<font color=\"#ff0000\">" + 当前页 + "</font>/" + 总页数 + "页 共<font color=\"#ff0000\">" + 总记录数 + "</font>条记录";
            返回值 += "<input type=\"text\" name=\"page\" size=\"2\" value=\"2\" />" + 生成表单参数() + "<input type=\"submit\" value=\"跳页\" />";

            return 返回值;
        }
    }
}