bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

.net分頁控件簡單實(shí)現(xiàn)

好久好久沒寫博客了。。。。。最近寫了一個(gè).net的分頁控件,放到園子里。。。你覺得好,就點(diǎn)個(gè)贊,不好呢,就告訴我為啥吧。。。。

成都創(chuàng)新互聯(lián)公司歡迎聯(lián)系:13518219792,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)頁制作領(lǐng)域十多年,包括成都iso認(rèn)證等多個(gè)領(lǐng)域擁有多年的網(wǎng)站制作經(jīng)驗(yàn),選擇成都創(chuàng)新互聯(lián)公司,為企業(yè)錦上添花。

是使用Request.QueryString的。。。。

參數(shù):

public int currentpageindex = 0;//當(dāng)前頁數(shù)
public int pagesize = 16;//每頁顯示的條數(shù)
public int pagecount = 0;//頁數(shù)
public int rowscount = 320;//總條數(shù)
public string prevtext = "前一頁";
public string nexttext = "后一頁";
public string ellipsetext = "...";//分隔符
public int edgeentries = 2;//頁邊
public bool prevshowalways = true;//前一頁按鈕是否顯示
public bool nextshowalways = true;//后一頁按鈕是否顯示
public int displayentries = 6;//顯示幾個(gè)按鈕
public string url;
public string pagestr = "";

計(jì)算最大頁數(shù)這里沒啥好說的,從數(shù)據(jù)庫讀出條數(shù)之后賦給rowscount即可。



//計(jì)算最大的頁數(shù)
public int NumPages()
{
     return Convert.ToInt32(Math.Ceiling((decimal)rowscount / pagesize));
}

主要問題就在于計(jì)算開始和結(jié)束按鈕這里,這里整好了,就相當(dāng)于一半都沒問題了

一開始我是使用的如下的代碼,但是有問題。。。。如果displayentries為2n-1時(shí),最后出來的是2n。

//根據(jù)當(dāng)前頁數(shù)和顯示數(shù)目計(jì)算開始和結(jié)束的分頁按鈕
        public int[] GetInterval()
        {
            int nehalf = Convert.ToInt32(Math.Ceiling((decimal)displayentries / 2));
            pagecount = NumPages();
            int upperlimit = pagecount - displayentries;//最大就是upperlimit,再大的話按鈕的個(gè)數(shù)就不能保證了。
            int start = currentpageindex > nehalf ? Math.Max(Math.Min(currentpageindex - nehalf, upperlimit), 1) : 1;
            int end = currentpageindex > nehalf ? Math.Min(currentpageindex + nehalf - 1, pagecount) : Math.Min(displayentries, pagecount);
            return new int[] { start, end };
        }

主要的原因就在于Math.Ceiling返回的是整數(shù),而2n-1和2n返回的是同樣一個(gè)數(shù),所以就會(huì)造成按鈕個(gè)數(shù)上出現(xiàn)問題。

所以呢,我就區(qū)別了一下奇數(shù)和偶數(shù)

//根據(jù)當(dāng)前頁數(shù)和顯示數(shù)目計(jì)算開始和結(jié)束的分頁按鈕
        public int[] GetInterval()
        {
            int nehalf = Convert.ToInt32(Math.Ceiling((decimal)displayentries / 2));
            pagecount = NumPages();
            int upperlimit = pagecount - displayentries+1;
            int start,end;
            if (displayentries % 2 == 0)
            {
               start = currentpageindex > nehalf ? Math.Max(Math.Min(currentpageindex - nehalf, upperlimit), 1) : 1;
            }
            else
            {
                start = currentpageindex > nehalf ? Math.Max(Math.Min(currentpageindex - nehalf+1, upperlimit), 1) : 1;
            }
            end = currentpageindex > nehalf ? Math.Min(currentpageindex + nehalf - 1, pagecount) : Math.Min(displayentries, pagecount);
            return new int[] { start, end };
        }

添加按鈕類

public string AppendItem(int pageid, string text)
        {
            string lnk;
            int id = pageid < 1 ? 1 : (pageid < pagecount ? pageid : pagecount);
            if (id == currentpageindex)
            {
                lnk = "<span class='current'>" + text + "</span>";
            }
            else
            {
                lnk = "<a href=?" + url + "&pageid=" + id + ">" + text + "</a>";
            }
            return lnk;
        }

生成分頁控件類

public string DrawLink()
        {
            //首先得到開始和結(jié)束的數(shù)組
            int[] interval = GetInterval();
            //生成前一頁鏈接
            if (prevtext != "" && currentpageindex > 1 && prevshowalways)
            {
                pagestr = AppendItem(currentpageindex - 1, prevtext);
            }
            //看是否有邊界頁,是否需要分界符
            if (interval[0] > 1 && edgeentries > 0)
            {
                //檢查邊界和開始誰小,畫按鈕
                int end = Math.Min(edgeentries, interval[0]);
                //生成邊界頁
                if (edgeentries == interval[0]) //注意interval[0]和edgeentries相等的時(shí)候,會(huì)出現(xiàn)重復(fù)
                {
                    for (int i = 1; i < end; i++)
                    {
                        pagestr = pagestr + AppendItem(i, i.ToString());
                    }
                }
                else
                {
                    for (int i = 1; i <= end; i++)//從1開始,因此i要小于等于end,這樣才會(huì)把end這個(gè)按鈕畫上
                    {
                        pagestr = pagestr + AppendItem(i, i.ToString());
                    }
                }
                //生成分界符
                if (edgeentries + 1 < interval[0] && ellipsetext != "")
                {
                    pagestr = pagestr + "<span>" + ellipsetext + "</span>";
                }
            }
            for (int i = interval[0]; i <= interval[1]; i++)
            {
                pagestr = pagestr + AppendItem(i, i.ToString());
            }
            if (interval[1] < pagecount && edgeentries > 0)//結(jié)尾
            {
                if (pagecount - edgeentries > interval[1] && ellipsetext != "")
                {
                    pagestr = pagestr + "<span>" + ellipsetext + "</span>";
                }
                int begin = Math.Max(pagecount - edgeentries + 1, interval[1]);
                if (pagecount - edgeentries + 1 == interval[1])
                {
                    for (int i = begin+1; i <= pagecount; i++)
                    {
                        pagestr = pagestr + AppendItem(i, i.ToString());
                    }
                }
                else
                {
                    for (int i = begin; i <= pagecount; i++)
                    {
                        pagestr = pagestr + AppendItem(i, i.ToString());
                    }
                }
            }
            //生成后一頁鏈接
            if (nexttext != "" && currentpageindex < pagecount && nextshowalways)
            {
                pagestr = pagestr + AppendItem(currentpageindex + 1, nexttext);
            }
            return pagestr;
        }

這樣,這個(gè)簡單的.net分頁控件就實(shí)現(xiàn)了。如果你有更好的方法,歡迎和我交流。。hiahia。。。。


MSP(Microsoft Student Partners)是微軟公司針對高校

大學(xué)生在全球范圍內(nèi)所設(shè)立的項(xiàng)目。旨在鼓勵(lì)那些在校園里積極倡導(dǎo)、推動(dòng)創(chuàng)新實(shí)踐,

樂于積極幫助他人的優(yōu)秀學(xué)生,給他們提供微軟最前沿的技術(shù)資源,以及更廣泛的交流、展示自我的平臺(tái)。

MSP項(xiàng)目面向所有熱愛技術(shù)、勇于創(chuàng)新、積極推動(dòng)創(chuàng)新實(shí)踐、愿意和他人分享自己所學(xué)的在校大學(xué)生,并不僅僅局限于技術(shù)類背景的學(xué)生。

如果你喜歡的話,歡迎加入。地址

http://msdn.microsoft.com/zh-cn/jj889435.aspx

附件:http://down.51cto.com/data/2363103

文章標(biāo)題:.net分頁控件簡單實(shí)現(xiàn)
轉(zhuǎn)載源于:http://vcdvsql.cn/article28/peiecp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器小程序開發(fā)定制網(wǎng)站建站公司網(wǎng)站設(shè)計(jì)公司全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站