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

        ?

        基于ASP.NET數(shù)據(jù)分頁導航的設計與應用

        2016-01-24 11:44:51袁芳
        軟件 2015年12期

        摘要:在ASP.NET動態(tài)網(wǎng)站開發(fā)過程中,數(shù)據(jù)分頁是經(jīng)常使用的一種技術,但DataList和Rep eater控件沒有內置分頁功能,需要編寫分頁代碼,而這些分頁代碼大致相同。本文針對GridView、DataList和Repeater數(shù)據(jù)綁定控件,設計了分頁導航用戶控件,從而解決了網(wǎng)頁開發(fā)過程中大量分頁代碼重復的問題,提高網(wǎng)站開發(fā)效率。

        關鍵詞:分頁技術;用戶控件;APS.NET

        中圖分類號:TP391

        文獻標識碼:A

        DOI:10.3969/j.issn.1003-6970.2015.12.013

        本文著錄格式:袁芳基于ASP.NET數(shù)據(jù)分頁導航的設計與應用[J]軟件,2015,36(12):60-62

        1 引言

        隨著計算機網(wǎng)絡技術與互聯(lián)網(wǎng)的發(fā)展與應用,人們越來越離不開網(wǎng)絡,上網(wǎng)瀏覽新聞、網(wǎng)購、搜索信息、發(fā)帖子等活動已成了我們生活的一部分,從而使得網(wǎng)站數(shù)據(jù)庫中的數(shù)據(jù)量呈現(xiàn)指數(shù)級增長。如果服務器端把用戶請求的數(shù)據(jù)全部以一個頁面發(fā)給客戶端的話,由于數(shù)據(jù)量大,會增加頁面顯示時間和頁面的總長度,這嚴重影響了用戶的體驗。針對這些問題,可以利用數(shù)據(jù)的分頁技術來解決。利用ASP.NET技術,本文詳細介紹了對網(wǎng)頁數(shù)據(jù)分頁的一些技術,并結合數(shù)據(jù)綁定控件的特點,設計分頁導航的用戶控件進行數(shù)據(jù)分頁,從而提高網(wǎng)站開發(fā)效率。

        2 內置分頁功能的數(shù)據(jù)綁定控件

        網(wǎng)頁中數(shù)據(jù)訪問的許多功能是由數(shù)據(jù)綁定控件來完成,ASP.NET有豐富的數(shù)據(jù)綁定控件,這是廣大網(wǎng)站開發(fā)人員樂于使用ASP.NET進行網(wǎng)站開發(fā)的一個重要原因。ASP.NET3.5中提供了GridView、DataList、Reapeater、ListView等數(shù)據(jù)綁定控件,其中具有內置分頁功能的有GridView控件、ListView控件和DetailsView控件,由于DetailsView控件每頁只顯示一條記錄信息,本文就不做介紹。

        2.1 GridView控件分頁

        GridView控件是以表格的形式顯示數(shù)據(jù)源的數(shù)據(jù)。它有內置分頁的功能,即該控件可以在不編寫任何代碼,僅僅設置相關屬性情況下,就可以實現(xiàn)數(shù)據(jù)綁定和分頁等功能。GridView控件要實現(xiàn)分頁功能只需設置AllowPaging屬性值為True,如果要指定每頁顯示的記錄數(shù),可以設置PageSize屬性,默認該屬性值為10條,分頁效果可以在屬性集合PagerSettings中進行設置。使用GridView內置分頁功能實現(xiàn)數(shù)據(jù)分頁,操作簡單,降低了網(wǎng)站開發(fā)難度,提高了開發(fā)效率,但需一次性將數(shù)據(jù)表中滿足條件的所有記錄讀入到內存,大大占用服務器資源,降低了服務器性能。所以這種分頁方式適合數(shù)據(jù)量比較少的情況使用,當數(shù)據(jù)量成千上萬時,就要編程分頁,可以使用緩存技術、存儲過程白定義分頁等技術。

        2.2 ListView控件與DataPager控件結合分頁

        從ASP.NET3.5開始,提供了全新的ListView控件和DataPager控件,結合使用這兩個控件就可以實現(xiàn)分頁顯示數(shù)據(jù)的功能。ListView控件用于顯示數(shù)據(jù),功能非常強大,它提供了編輯、刪除、插入、分頁與排序等數(shù)據(jù)操作功能和強大的顯示布局功能,同GridView控件類似,與GridView控件不同之處在于比GridView控件多了插入功能和使用用戶定義的模板而不是行字段來顯示數(shù)據(jù)。ListView控件的分頁功能是通過DataPager控件來實現(xiàn)的。DataPager控件的PagedCountID屬性值為ListView控件的ID值。DataPager控件擺放的位置可以是內嵌在ListView控件的標簽內,也可以是獨立于ListView控。但這種分頁樣式是就兩種,不夠靈活。

        3 分頁導航用戶控件的設計與實現(xiàn)

        在網(wǎng)站開發(fā)過程中,對GridView、DataList和Repeater數(shù)據(jù)綁定控件使用的比較頻繁。當數(shù)據(jù)量很多時,就需要對數(shù)據(jù)進行分頁,GridView控件白帶了分頁功能,但分頁樣式卻差強人意。而DataList和Repeater控件在布局上可以靈活多變,但他們沒有分頁功能,只能由開發(fā)者編寫大量代碼手動開發(fā),涉及分頁數(shù)據(jù)的頁面都要編寫分頁代碼,而這些分頁代碼大致是相同的,這會導致程序代碼重用率低,可維護性差和開發(fā)速度慢等問題。為了解決這些問題,本文設計和開發(fā)一個為這3個數(shù)據(jù)綁定控件都能使用的分頁導航用戶控件。

        3.1 分頁導航用戶控件的界面設計

        向網(wǎng)站項目中添加一個用戶控件,將它命名為UserDataPagerControl.ascx,用于數(shù)據(jù)分頁導航,在文件中添加7個控件,Label控件用于顯示當前是第幾頁、共多少頁,共多少條記錄,4個LinkButton控件用于翻頁,定位到首頁、上一頁、下一頁和末頁,DropDownList控件顯示共多少頁碼的列表,Button控件“跳轉”用于直接定位到DropDownList所選的頁,設計如圖l所示。

        3.2 分頁導航用戶控件的后臺代碼

        首先為分頁導航控件創(chuàng)建幾個屬性,通過這些屬性可以設置數(shù)據(jù)所需的參數(shù),DataBindControIID屬性是存放分頁頁面中數(shù)據(jù)綁定控件的ID信息,PageNum屬性為每頁顯示數(shù)據(jù)的條數(shù),DataSQL屬性為查詢數(shù)據(jù)表的sql語句,在全局的地方創(chuàng)建一個靜態(tài)PageDataS ource分頁數(shù)據(jù)源的對象pds,白定義一個BindDatalnfo方法,該方法是用來從數(shù)據(jù)庫中查詢_LH符合指定條件的記錄,并將數(shù)據(jù)信息綁定到數(shù)據(jù)綁定控件中,其參數(shù)為當前頁的索引值。在Page_Load事件中,第一次運行時,顯示第一頁,頁面索引值為0,調用該方法,即if(!IsPostBack){BindDatalnfo(0);},BindDatalnfo方法的代碼如下所示。

        private void BindDatalnfo(int currentpage){

        string controltype=dataBindControIID.GetType().ToString();//controltype為數(shù)據(jù)綁定控件的類型

        controltype=controltype.Substring(controltype.LastlndexOf(“.”)+l,controltype.Length-l-cont roltype.LastlndexOf(“.”));

        SqIConnection conn=new SqIConnection(Conf igurationManager.ConnectionStrings connD ataBase”].C onnectionString);

        pds.AllowPaging=true;//允許分頁

        pds.PageSize=pageNum;//每頁顯示數(shù)據(jù)條數(shù)

        pds.CurrentPagelndex=currentpage;//currentpage為BindDatalnfo方法的參數(shù)值

        conn.Open();//打開數(shù)據(jù)庫連接

        SqIDataAdapter sda=new SqIDataAdapter(sql,conn):

        DataSet ds=new DataSet():

        sda.Fill(ds);//手巴執(zhí)行得到的數(shù)據(jù)放在數(shù)據(jù)集中

        pds.DataSource=ds.Tables[O].DefaultView;//把數(shù)據(jù)集中的數(shù)據(jù)放人分頁數(shù)據(jù)源中

        LabCount.Text=“第”+(pds.CurrentPagelndex+l)+“頁共”+pds.PageCount+“頁共”+pds.DataSourceCount+“條記錄”;

        //當前頁為首頁時,設置“首頁”、“上一頁”按鈕無效

        if(pds.IsFirstPage){

        lbtnFirst.Enabled=false;

        lbtnPre.Enabled=false;}else{

        lbtnFirst.Enabled=true;

        lbtnPre.Enabled=true;}

        //當前頁為末頁時,設置“末頁”、“下一頁”按鈕無效

        if(pds.IsLastPage){

        lbtnNext.Enabled=false:

        lbtnLast.Enabled=false;}else{

        lbtnNext.Enabled=true:

        lbtnLast.Enabled=true;{

        //給下拉列表控件添加頁碼值列表

        if(!IsPostBack){

        for(int i=1;i<=pds.PageCount;i++){

        ddIPages.Items.Add(i.ToString());}}

        ddIPages.Selectedlndex=pds.CurrentPagelndex;//下拉列表控件顯示當前頁碼

        //判斷頁面數(shù)據(jù)綁定控件的類型,進行相應的數(shù)據(jù)綁定

        if(controltype==“GridView”){

        ((GridView)(dataBindControIID)).DataSource=pds;

        ((GridView)(dataBindControIID)).DataBind();}

        else if(controltype==“DataList”){

        ((DataList)(dataBindControIID)).DataSource=pds;

        ((DataList)(dataBindControIID)).DataBind();}

        else{

        ((Repeater)(dataBindControIID)).DataSource=pds;

        ((Repeater)(dataBindControIID)).DataBind();}

        conn.Close();}//關閉數(shù)據(jù)庫連接

        在頁面定位時,主要設計首頁、上一頁、下一頁、末頁和跳轉按鈕的單擊事件代碼的編寫,這些按鈕的代碼如下所述。在這5個按鈕的單擊事件中都定義一個整形int類型的局部變量pagelndex,“首頁”按鈕單擊事件代碼中對pagelndex變量賦“0”值;“上一頁”單擊事件代碼中對pagelndex值為“pds.CurrentPagelndex-1”,“下一頁”單擊事件代碼中對pagelndex值為“pds.CurrentPagelndex+1”;“末頁”單擊事件代碼中對pagelndex值為“pds.PageCount-1”,跳轉按鈕的單擊事件代碼中pagelndex值為“Convert.ToInt32(ddIPages.Selectedltem.Text)-l”,這5個按鈕單擊事件代碼最后都寫上調用白定義方法BindDatalnfo,代碼為“BindDatalnfo(pagelndex)”就可以完成翻頁和頁面的定位。

        3.3 分頁導航用戶控件的應用

        當分頁導航用戶白定義控件做好后,就可以像ASP.NET工具箱里控件一樣把UserDataPagerControl用戶控件拖到.aspx頁面中,下面以GridView和DataList數(shù)據(jù)綁定控件為類,可以輕松的完成數(shù)據(jù)分頁,在頁面開發(fā)過程中可以重復使用UserDataPagerControl用戶控件,從而大大提高開發(fā)的效率。

        在GridView控件的頁面Page_Load事件代碼中,設置分頁導航控件的屬性值,添加如下代碼,運行效果如圖2所示

        UserDataPagerControII.DataBindControIID=Gri dViewl:

        UserDataPagerControII.DataSQL="select ID,Ti tle,Style,Type from tbNews";

        UserDataPagerControll.PageNum=6;

        在DataList控件的頁面Page_Load事件代碼中,設置分頁導航控件的屬性值,添加如下代碼.運行效果如圖3所示。

        UserDataPagerControll.DataBindControllD=Dat aListl:

        UserDataPagerControll.DataSQL="select Book Name.BookAuthor.BookPrice.Booklinage from tbBooks":

        UserDataPagerControll.PageNum=2;

        4 總結

        在Web應用程序開發(fā)中,數(shù)據(jù)分頁是經(jīng)常使用的一種技術,也是提高數(shù)據(jù)訪問性能和用戶體驗的一主要手段。在動態(tài)網(wǎng)頁開發(fā)過程中,對GridView、Da taList和Repeater數(shù)據(jù)綁定控件使用頻率比較高,本文自定義了分頁導航用戶控件,該控件可以像工具箱里其它內置控件一樣任意使用,適合對GridView、Da taList和Repeater數(shù)據(jù)綁定控件的數(shù)據(jù)進行分頁,從而解決了動態(tài)網(wǎng)站開發(fā)過程中大量分頁代碼重復問題,提高了代碼的重用率、網(wǎng)站的開發(fā)效率和系統(tǒng)的可維護性。

        亚洲AV无码一区二区二三区我| 免费在线观看av不卡网站| 熟女人妻中文字幕av| 无码人妻丰满熟妇啪啪网站| 国产亚洲精品久久久久久| 亚洲另类激情综合偷自拍图| 国产毛片一区二区日韩| 人妻蜜桃日产一本久道综合在线 | 九一成人AV无码一区二区三区| 国产精品高清亚洲精品| 色播在线永久免费视频网站| 人成视频在线观看免费播放 | 亚洲sm另类一区二区三区| 国产精品人人做人人爽人人添 | 欧美人牲交| 亚洲依依成人亚洲社区| 五月天无码| 亚洲国产精品天堂久久久| 国产av一区二区三区性入口| 国产成人亚洲综合无码品善网 | 亚洲αⅴ无码乱码在线观看性色| 亚洲一码二码在线观看| 精彩视频在线观看一区二区三区| 国产熟妇与子伦hd| 午夜不卡av免费| 亚洲欧美日韩国产综合专区 | 亚洲午夜成人片| 免费啪啪av人妻一区二区 | 一卡二卡国产av熟女| av在线不卡一区二区三区| 免费看黄片的视频在线观看| 无码爆乳护士让我爽| 精品亚洲成a人在线观看青青| 亚洲国产精品中文字幕日韩| 蜜桃人妻午夜精品一区二区三区| 日韩中文字幕有码午夜美女| 成人区人妻精品一区二区不卡网站| 欧美成人a在线网站| 巨乳av夹蜜桃站台蜜桃机成人| 女同中文字幕在线观看| 国产亚洲精品熟女国产成人|