亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種Web數(shù)據(jù)分頁(yè)顯示技術(shù)

        2014-11-07 21:11:54楊毅
        科技資訊 2014年7期
        關(guān)鍵詞:方法

        楊毅

        摘 要:本文提出了一種控制Repeater控件中數(shù)據(jù)分頁(yè)顯示的新方法,可以自由控制分頁(yè)控件的內(nèi)容和格式。為了進(jìn)一步方便使用,把此方法封裝到自定義類中,只需要在Web頁(yè)面中定義一個(gè)Repeater和一個(gè)Div控件,然后給出四個(gè)簡(jiǎn)單的參數(shù)去調(diào)用本方法,就可以完美地實(shí)現(xiàn)分頁(yè)顯示數(shù)據(jù)。

        關(guān)鍵詞:Repeater Div 分頁(yè) 類 方法

        中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)03(a)-0017-02

        當(dāng)一個(gè)網(wǎng)頁(yè)顯示數(shù)據(jù)記錄太多時(shí),既不美觀也不方便,此時(shí)就需要對(duì)數(shù)據(jù)進(jìn)行分頁(yè)顯示。早期,程序員曾使用手工方式控制SQL查詢命令來(lái)實(shí)現(xiàn)分頁(yè)顯示大量的數(shù)據(jù)。后來(lái),開始出現(xiàn)一些現(xiàn)成的分頁(yè)控件[1,5],但一般都是比較死板,程序員只能機(jī)械地調(diào)用,很難對(duì)其實(shí)現(xiàn)隨意增、刪和調(diào)整。針對(duì)以上情況,許多新的分頁(yè)技術(shù)[2~4]開始出現(xiàn),一些程序員開始發(fā)布自己的技術(shù)源代碼,在網(wǎng)絡(luò)上共享自己的創(chuàng)新,進(jìn)一步激發(fā)了這一技術(shù)的發(fā)展。

        縱觀眾多的分頁(yè)技術(shù),即使引用別人的源代碼,都很難實(shí)現(xiàn)直接引用。本文提出一種新方法,程序員在前臺(tái)界面定義一個(gè)顯示數(shù)據(jù)的Repeater控件,在Repeater控件的尾部定義一個(gè)顯示分頁(yè)功能的Div層,然后把這兩個(gè)控件和查詢數(shù)據(jù)的SQL命令串作為參數(shù)傳遞給自定義類中的方法,從而實(shí)現(xiàn)分頁(yè)技術(shù)的模塊化。

        1 技術(shù)準(zhǔn)備及思路

        本應(yīng)用選用C#.net語(yǔ)言,使用VS.Net 2008中的Repeater控件和Div控件[5]。在項(xiàng)目中自定義一個(gè)類,在類中定義一個(gè)“page( )”方法,主要實(shí)現(xiàn)以下功能:

        (1)連接數(shù)據(jù)庫(kù),查詢出所要顯示的數(shù)據(jù),并保存到一個(gè)DataSet中;(2)在div中動(dòng)態(tài)生成各種控制分頁(yè)的控件,如“上一頁(yè)、下一頁(yè)”等(程序員可以根據(jù)自己的需要來(lái)生成各種控件);(3)定義PagedDataSource控件,接收DataSet中的數(shù)據(jù),設(shè)置Paged DataSource控件分頁(yè)屬性;(4)使用div中的分頁(yè)控件來(lái)傳遞需要顯示的頁(yè)碼,并把頁(yè)碼傳遞給PagedDataSource;(5)把PagedDataSource綁定到Repeater,顯示分頁(yè)后的數(shù)據(jù)記錄。

        當(dāng)需要分頁(yè)顯示數(shù)據(jù)時(shí),程序員只需要把Repeater和Div控件的ID傳遞給page( )方法即可。

        2 編碼實(shí)施及結(jié)果

        2.1 定義類和方法

        本處省略了數(shù)據(jù)庫(kù)連接和打開操作的代碼,僅給出類和方法的核心部分。

        public class Paging

        { public HtmlControl div11;

        public void page(Repeater Repeater1, string sql, int pagesize, HtmlControl div)

        { div11 = div;

        DataTable dt = ds.Tables[0]; //把查詢的數(shù)據(jù)填充到一個(gè)DataSet類的ds中

        HyperLink firtp = new HyperLink(); firtp.Text = "首頁(yè)"; //動(dòng)態(tài)生成各分頁(yè)控件

        HyperLink prep = new HyperLink(); prep.Text="上一頁(yè)";

        HyperLink nextp=new HyperLink(); nextp.Text="下一頁(yè)";

        HyperLink lastp= new HyperLink(); lastp.Text="尾頁(yè)";

        TextBox TextBox1yy = new TextBox();TextBox1yy.ID="TextBox1yy";

        TextBox1yy.Attributes.Add("runat", "server");

        Button Button1yy=new Button(); Button1yy.Text="跳轉(zhuǎn)";//定義任意頁(yè)跳轉(zhuǎn)按鈕

        Button1yy.Click+=new System.EventHandler(Button1yy_Click);

        div11.Controls.Add(firtp); div11.Controls.Add(prep);

        div11.Controls.Add(nextp); div11.Controls.Add(lastp);

        div11.Controls.Add(TextBox1yy); div11.Controls.Add(Button1yy);

        PagedDataSource pds=new PagedDataSource(); //生成一個(gè)PagedDataSource控件

        pds.DataSource=dt.DefaultView;

        pds.AllowPaging=true; pds.PageSize=pagesize;//指定每頁(yè)行數(shù)

        int totalp=(dt.Rows.Count+pds.PageSize-1)/pds.PageSize;//得出總行數(shù)

        Label1yy.Text="總頁(yè)數(shù)為:"+ Convert.ToString(totalp);

        int curpage;//當(dāng)前頁(yè)

        if(Request.QueryString["Page"] != null)

        curpage=Convert.ToInt32(HttpContext.Current.Request.QueryString["Page"]);endprint

        else curpage=1;

        pds.CurrentPageIndex=curpage-1;

        if (!pds.IsFirstPage)

        prep.NavigateUrl=HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curpage - 1);

        if (!pds.IsLastPage)

        nextp.NavigateUrl=HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curpage + 1);

        Repeater1.DataSource=pds;Repeater1.DataBind();//把pds綁定到Repeater1

        if (curpage!=1)//控制首頁(yè)

        firtp.NavigateUrl=HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=1";

        if (curpage !=totalp)//控制尾頁(yè)

        lastp.NavigateUrl=HttpContext.Current.Request.CurrentExecutionFilePath + "?Page="+Convert.ToString(totalp);

        }

        protected void Button1yy_Click(object sender,EventArgs e)//“跳轉(zhuǎn)”按鈕功能實(shí)現(xiàn)

        { TextBox ppp=(TextBox)this.div11.FindControl("TextBox1yy");

        string p=ppp.Text.Trim(); HttpContext.Current.Response.Redirect(HttpContext.Current.Request.CurrentExecutionFilePath+"?Page="+p);

        } }

        程序員可以根據(jù)實(shí)際需要,在div中生成滿足自己要求的分頁(yè)控件,分別設(shè)置其屬性,以達(dá)到美化和協(xié)調(diào)的目的。

        2.2 定義前臺(tái)和調(diào)用方法

        在Web頁(yè)面前臺(tái)定義一個(gè)Repeater控件,同時(shí)完成表格頭的定義,把各列綁定到要顯示的數(shù)據(jù)字段上。在Repeater控件的尾部定義一個(gè)Div層,取名為“divpaging”。在相應(yīng)的后臺(tái)cs代碼中調(diào)用方法“new Paging().page(Repeater1,sql,5,divpaging)”。其中,“sql”是數(shù)據(jù)庫(kù)的SQL查詢命令串,“pagesize”為一頁(yè)顯示的數(shù)據(jù)記錄數(shù)目,“div”是顯示分頁(yè)控件的容器。

        根據(jù)本算法,編寫代碼,測(cè)試結(jié)果如圖1所示。

        當(dāng)多個(gè)網(wǎng)頁(yè)需要使用本技術(shù)時(shí),只需要在前臺(tái)快速地定義好Repeater和div控件,就可以直接調(diào)用本方法。從實(shí)驗(yàn)結(jié)果看,基本上實(shí)現(xiàn)了目前流行的分頁(yè)功能。

        3 結(jié)論

        經(jīng)過實(shí)驗(yàn)得知,此方法的優(yōu)點(diǎn)在于,程序員可以隨意定義和調(diào)整分頁(yè)功能模塊,只需要定義前臺(tái)界面的控件,復(fù)用本技術(shù)就可以實(shí)現(xiàn)多個(gè)網(wǎng)頁(yè)顯示風(fēng)格的統(tǒng)一,大大提升分頁(yè)顯示的效率。

        參考文獻(xiàn)

        [1] 李兵,劉淑芬.海量數(shù)據(jù)下的Web分頁(yè)呈現(xiàn)研究[J].吉林大學(xué)學(xué)院:信息科學(xué)版,2005,23(5):518-521.

        [2] 鄭平.基于Web的分而技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2011,1(1):45-46.

        [3] 高文鵬.Java Web分頁(yè)技術(shù)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2010,8(3):80-82.

        [4] 董一華.基于ASP.NET緩存與分頁(yè)策略優(yōu)化Web數(shù)據(jù)查詢性能[J].計(jì)算機(jī)時(shí)代,2006,1(9):8-10.

        [5] 金雪云,陳建偉,等.Visual C#2008程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2011:2-7.endprint

        猜你喜歡
        方法
        中醫(yī)特有的急救方法
        中老年保健(2021年9期)2021-08-24 03:52:04
        高中數(shù)學(xué)教學(xué)改革的方法
        化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
        變快的方法
        兒童繪本(2020年5期)2020-04-07 17:46:30
        學(xué)習(xí)方法
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        最有效的簡(jiǎn)單方法
        山東青年(2016年1期)2016-02-28 14:25:23
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        另类内射国产在线| 亚洲精品一区二区三区四区久久 | 中文无码av一区二区三区| 日韩亚洲欧美中文在线| 欧美性猛交xxxx乱大交蜜桃| 日韩精品一区二区三区四区视频| 国产免费人成视频在线| 国精品人妻无码一区免费视频电影| 欧美喷潮久久久xxxxx| 香蕉久久夜色精品国产| 日本va中文字幕亚洲久伊人| 亚洲日韩国产欧美一区二区三区| 亚洲久热无码av中文字幕| 天堂网av在线| 在线播放国产自拍av| 国产精品99精品无码视亚| 国产亚洲日韩欧美久久一区二区| 久久久精品人妻一区二| 国产毛女同一区二区三区| 亚洲午夜福利在线视频| 亚洲精品有码在线观看| 国产无套粉嫩白浆内精| 免费av一区二区三区| 国产午夜精品一区二区三区不卡| 中文精品久久久久中文| 深夜福利国产精品中文字幕| 成人乱码一区二区三区av| 无码人妻一区二区三区在线视频| 女优免费中文字幕在线| 国产香蕉一区二区三区在线视频| 亚洲色欲久久久综合网| 色噜噜狠狠色综合中文字幕| 女优av性天堂网男人天堂| 欧美丰满熟妇bbbbbb| 日韩视频第二页| 久久少妇呻吟视频久久久| 国产情侣一区二区三区| 一本久久a久久精品亚洲| 精品丝袜国产在线播放| 国产视频一区二区在线免费观看| 国产97在线 | 亚洲|