コード例 #1
0
ファイル: Usr.cs プロジェクト: rzukowski/Sport
        /// <summary>
        /// builds pagination links and return them as html string
        /// </summary>
        /// <param name="pagesNumberMax"></param>
        /// <param name="page"></param>
        /// <param name="functionString"></param>
        /// <returns></returns>
        public static string BuildHtmlPagination(int pagesNumberMax, int page, string functionString)
        {
            Div div = new Div();

            if (pagesNumberMax > 4)
            {

                Anchor anchor = new Anchor();
                Anchor anchor2 = new Anchor();
                Anchor anchor3 = new Anchor();
                Anchor anchor4 = new Anchor();

                //jesli to pierwsza strona
                if (page == 1)
                {
                    //pokaz 1 i 2, postaw '...' jako link do ostatniej strony
                    anchor.CssClass = "aktywnyPag";
                    page += 1;

                    anchor.Text = 1.ToString();
                    anchor2.Text = (page).ToString();
                    anchor3.Text = (page + 1).ToString();
                    anchor4.Text = "...";

                }
                //jesli aktywna strona większa od 1 oraz mniejsza od maxPageNumber - 1 to:
                else if (page > 1 && page < pagesNumberMax - 1)
                {
                    //'...' jako pierwsza strona '...' jako ostatnia strona, pokaz obecny page oraz page+1
                    anchor2.CssClass = "aktywnyPag";
                    anchor.Text = "...";
                    anchor2.Text = (page).ToString();
                    anchor3.Text = (page + 1).ToString();
                    anchor4.Text = "...";
                }

                    //jeśli aktywna strona to pageMax lub pageMax-1 to:
                else if (page == pagesNumberMax || page == (pagesNumberMax - 1))
                {
                    //'...' jako pierwszy, (pagesNumberMax-1) oraz pagesNumberMax jako numery

                    if (page == pagesNumberMax) { anchor4.CssClass = "aktywnyPag"; page -= 2; } else { anchor3.CssClass = "aktywnyPag"; page -= 1; }

                    anchor.Text = "...";
                    anchor2.Text = (page).ToString();
                    anchor3.Text = (page + 1).ToString();
                    anchor4.Text = pagesNumberMax.ToString();

                }

                anchor.ID = "link" + (1);
                anchor2.ID = "link" + (page);
                anchor3.ID = "link" + (page + 1);
                anchor4.ID = "link" + (pagesNumberMax);

                anchor.FunctionOnClick = functionString.Replace("this", "1");
                anchor.FunctionOnClick = 1.ToString();

                anchor2.FunctionOnClick = functionString.Replace("this", page.ToString());

                anchor3.FunctionOnClick = functionString.Replace("this", page.ToString() + 1);

                anchor4.FunctionOnClick = functionString.Replace("this", pagesNumberMax.ToString());

                div.AddControll(anchor.CreateHtml());
                div.AddControll(anchor2.CreateHtml());
                div.AddControll(anchor3.CreateHtml());
                div.AddControll(anchor4.CreateHtml());

            }
            else
            {
                for (int ii = 0; ii < pagesNumberMax; ii++)
                {
                    Anchor anchor = new Anchor();
                    // anchor.PostBackUrl = "Odwiedzili.aspx?odwiedzili="+(ii+1);
                    anchor.Text = (ii + 1).ToString();
                    anchor.ID = "link" + (ii + 1);

                    anchor.FunctionOnClick += functionString.Replace("this", (ii + 1).ToString());

                    if ((ii + 1) == page)
                        anchor.CssClass = "aktywnyPag";
                    div.AddControll(anchor.CreateHtml());

                }

            }
            return div.CreateDivHtml();
        }