コード例 #1
0
ファイル: DataByPage.cs プロジェクト: zxmajunhong/wanghai
        /// <summary>
        /// 存储过程分页查询
        /// </summary>
        /// <param name="TableName">表名称</param>
        /// <param name="PrimaryKey">主键名称</param>
        /// <param name="Fields">显示的字段(*代表全部)</param>
        /// <param name="Sql_where">查询条件(and开头)</param>
        /// <param name="OrderItem">排序字段</param>
        /// <param name="Order">升序或降序(true降序 false升序)</param>
        /// <param name="PageSize">分页大小</param>
        /// <param name="PageItems">分页控件显示个数</param>
        /// <param name="PageId">分页控件Id</param>
        /// <param name="OutSelectSql">输出sql语句(调试用)</param>
        /// <returns>返回dataset</returns>
        public static DataSet DataPage(string connectionString, string TableName, string PrimaryKey, string Fields, string Sql_where, string OrderItem, bool Order, int PageSize, int PageItems, HtmlGenericControl PageId, HtmlGenericControl nullarea = null, string OutSelectSql = "")
        {
            PageId.Attributes.Add("class", "page");
            int pageIndex = 1;                                    //当前页

            if (HttpContext.Current.Request.QueryString["page"] != null)
            {
                string cpage = HttpContext.Current.Request.QueryString["page"];
                if (IsInteger(cpage))
                {
                    pageIndex = Int32.Parse(cpage);
                }
                else
                {
                    string urls  = HttpContext.Current.Request.Url.AbsolutePath;//虚拟路径及文件名
                    string items = HttpContext.Current.Request.Url.Query;
                    if (items.Contains("&page=") || items.Contains("?page="))
                    {
                        items = items.Replace("&page=" + HttpContext.Current.Request.QueryString["page"], "&page=1");
                        items = items.Replace("?page=" + HttpContext.Current.Request.QueryString["page"], "?page=1");
                    }
                    string nava = urls + items;
                    HttpContext.Current.Response.Redirect(nava);
                    pageIndex = 1;
                }
            }
            int     PageCount; //总页数
            int     Counts;    //总记录数
            DataSet ds = new DataSet();

            DbAccess.RunProcedure RunProcedure = new DbAccess.RunProcedure();
            ds = RunProcedure.ReturnPageList(connectionString, "ProcDataPaging", TableName, PrimaryKey, Fields, PageSize, pageIndex, OrderItem, Order, Sql_where, false, out PageCount, out Counts, out OutSelectSql);
            if (ds.Tables[0].Rows.Count <= 0)
            {
                if (nullarea != null)
                {
                    nullarea.Visible = true;
                }
                else
                {
                    //PageId.InnerHtml = "<div style='line-height:60px;height:60px;width:100%;text-align:center;'><p style='color:gray;width:200px;margin:0 auto;background:#FFFFFF;border:solid 0px #ccc;'>对不起,暂无相关记录...<p></div>";
                }
            }
            else
            { //定义跳转页面
                string FirstPage = "";
                string PrePage   = "";
                string NextPage  = "";
                string LastPage  = "";
                string items     = HttpContext.Current.Request.Url.Query;
                if (items.Contains("&page=") || items.Contains("?page="))
                {
                    items = items.Replace("&page=" + pageIndex, "");
                    items = items.Replace("?page=" + pageIndex, "");
                }
                if (items != "")
                {
                    FirstPage = items + "&page=1";
                    PrePage   = items + "&page=" + (pageIndex - 1).ToString();
                    NextPage  = items + "&page=" + (pageIndex + 1).ToString();
                    LastPage  = items + "&page=" + PageCount.ToString();
                    items    += "&page=";
                }
                else
                {
                    FirstPage = "?page=1";
                    PrePage   = "?page=" + (pageIndex - 1).ToString();
                    NextPage  = "?page=" + (pageIndex + 1).ToString();
                    LastPage  = "?page=" + PageCount.ToString();
                    items    += "?page=";
                }
                string urls = HttpContext.Current.Request.Url.AbsolutePath;//虚拟路径及文件名
                if (pageIndex > PageCount)
                {
                    string nava = urls + items + PageCount;
                    HttpContext.Current.Response.Redirect(nava);
                }
                int avg_l = 0;
                int avg_r = 0;
                int start = 1;
                int end   = PageCount;
                if (PageItems % 2 == 0)
                {
                    avg_l = PageItems / 2;
                    avg_r = (PageItems - 1) / 2;
                }
                else if (PageItems % 2 != 0)
                {
                    avg_l = avg_r = PageItems / 2;
                }
                if (PageItems < PageCount)
                {
                    if (pageIndex - avg_l - 1 <= 0)
                    {
                        end = PageItems;
                    }
                    else if (pageIndex + avg_r > PageCount)
                    {
                        start = PageCount - PageItems + 1;
                    }
                    else
                    {
                        start = pageIndex - avg_l;
                        end   = pageIndex + avg_r;
                    }
                }
                string url = "";
                PageId.InnerHtml = "<span class='pageleft'>第<strong>" + pageIndex + "</strong>页共<strong>" + PageCount + "</strong>页</span>";
                if (pageIndex == 1)
                {
                    PageId.InnerHtml += "<span class='page_btn'><span>首 页</span><span>上一页</span></span>";
                }
                else
                {
                    PageId.InnerHtml += "<span class='page_btn'><a href='" + url + FirstPage + "'>首 页</a><a href='" + url + PrePage + "'>上一页</a></span>";
                }
                for (int i = start; i <= end; i++)
                {
                    if (i == pageIndex)
                    {
                        PageId.InnerHtml += "<span class='page_now'>" + i + "</span>";
                    }
                    else
                    {
                        PageId.InnerHtml += "<a href='" + items + i + "'>" + i + "</a>";
                    }
                }
                if (pageIndex == PageCount)
                {
                    PageId.InnerHtml += "<span class='page_btn'><span>下一页</span><span>尾 页</span></span>";
                }
                else
                {
                    PageId.InnerHtml += "<span class='page_btn'><a href='" + url + NextPage + "'>下一页</a><a href='" + url + LastPage + "'>尾 页</a></span>";
                }
                if (ds.Tables[0].Rows.Count <= 0 || Counts <= PageSize)
                {
                    PageId.Visible = false;
                }
            }
            return(ds);
        }
コード例 #2
0
        /// <summary>
        /// 存储过程分页查询
        /// </summary>
        /// <param name="TableName">表名称</param>
        /// <param name="PrimaryKey">主键名称</param>
        /// <param name="Fields">显示的字段(*代表全部)</param>
        /// <param name="Sql_where">查询条件(and开头)</param>
        /// <param name="OrderItem">排序字段</param>
        /// <param name="Order">升序或降序(true降序 false升序)</param>
        /// <param name="PageSize">分页大小</param>
        /// <param name="PageItems">分页控件显示个数</param>
        /// <param name="PageId">分页控件Id</param>
        /// <param name="OutSelectSql">输出sql语句(调试用)</param>
        /// <returns>返回dataset</returns>


        public static DataSet DataPage(string connectionString, string TableName, string PrimaryKey, string Fields, string Sql_where, string OrderItem, bool Order, int PageSize, int PageItems, HtmlGenericControl PageId, string NoData = "对不起,暂无数据......", string OutSelectSql = "")
        {
            PageId.Attributes.Add("class", "page");
            int pageIndex = 1;                                    //当前页

            if (HttpContext.Current.Request.QueryString["page"] != null && IsInteger(HttpContext.Current.Request.QueryString["page"]))
            {
                string cpage = HttpContext.Current.Request.QueryString["page"];
                if (IsInteger(cpage))
                {
                    pageIndex = Int32.Parse(cpage);
                }
            }
            int     PageCount; //总页数
            int     Counts;    //总记录数
            DataSet ds = new DataSet();

            DbAccess.RunProcedure RunProcedure = new DbAccess.RunProcedure();
            ds = RunProcedure.ReturnPageList(connectionString, "ProcDataPaging", TableName, PrimaryKey, Fields, PageSize, pageIndex, OrderItem, Order, Sql_where, false, out PageCount, out Counts, out OutSelectSql);
            if (ds.Tables[0].Rows.Count <= 0)
            {
                PageId.InnerHtml = "<div class='nodata'>" + NoData + "</div>";
            }
            else
            {
                string FirstPage = numpage(pageIndex, 1);
                string PrePage   = numpage(pageIndex, pageIndex - 1);
                string NextPage  = numpage(pageIndex, pageIndex + 1);
                string LastPage  = numpage(pageIndex, PageCount);
                if (pageIndex > PageCount)
                {
                    string nava = numpage(pageIndex, PageCount);
                    HttpContext.Current.Response.Redirect(nava);
                }

                int avg_l = 0;
                int avg_r = 0;
                int start = 1;
                int end   = PageCount;
                if (PageItems % 2 == 0)
                {
                    avg_l = PageItems / 2;
                    avg_r = (PageItems - 1) / 2;
                }
                else if (PageItems % 2 != 0)
                {
                    avg_l = avg_r = PageItems / 2;
                }
                if (PageItems < PageCount)
                {
                    if (pageIndex - avg_l - 1 <= 0)
                    {
                        end = PageItems;
                    }
                    else if (pageIndex + avg_r > PageCount)
                    {
                        start = PageCount - PageItems + 1;
                    }
                    else
                    {
                        start = pageIndex - avg_l;
                        end   = pageIndex + avg_r;
                    }
                }
                PageId.InnerHtml = "<span class='pageleft'>第<strong>" + pageIndex + "</strong>页共<strong>" + PageCount + "</strong>页</span>";
                if (pageIndex == 1)
                {
                    PageId.InnerHtml += "<span class='page_btn'><span>首 页</span><span>上一页</span></span>";
                }
                else
                {
                    PageId.InnerHtml += "<span class='page_btn'><a href='" + FirstPage + "'>首 页</a><a href='" + PrePage + "'>上一页</a></span>";
                }
                for (int i = start; i <= end; i++)
                {
                    if (i == pageIndex)
                    {
                        PageId.InnerHtml += "<span class='page_now'>" + i + "</span>";
                    }
                    else
                    {
                        PageId.InnerHtml += "<a href='" + numpage(pageIndex, i) + "'>" + i + "</a>";
                    }
                }
                if (pageIndex == PageCount)
                {
                    PageId.InnerHtml += "<span class='page_btn'><span>下一页</span><span>尾 页</span></span>";
                }
                else
                {
                    PageId.InnerHtml += "<span class='page_btn'><a href='" + NextPage + "'>下一页</a><a href='" + LastPage + "'>尾 页</a></span>";
                }
                if (ds.Tables[0].Rows.Count <= 0 || Counts <= PageSize)
                {
                    PageId.Visible = false;
                }
            }
            return(ds);
        }