国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ASP.NET真假分頁—真分頁

2019-11-17 01:52:32
字體:
供稿:網(wǎng)友

asp.net真假分頁—真分頁

當(dāng)數(shù)據(jù)量過大,有幾萬甚至十幾萬條數(shù)據(jù)時(shí),每次都從數(shù)據(jù)庫中取出所有數(shù)據(jù)就會降低查詢效率,系統(tǒng)運(yùn)行慢,還有可能卡死,這時(shí)假分頁就會顯得很不人性化,因此有了真分頁的必要性。

正如上篇博文總結(jié)歸納,“真”相對于“假”存在,即不藕斷絲連,從根部徹底斷開,在此處表現(xiàn)為根據(jù)查詢條件,只從數(shù)據(jù)庫中提取出需要的部分,適合于大數(shù)據(jù)。而真分頁的實(shí)現(xiàn)要借助于第三方控件AspNetPager。

AspNetPager控件是一個(gè)基于.net的第三方免費(fèi)開源控件,具有開發(fā)高效、使用方便、功能完整等優(yōu)點(diǎn)。它彌補(bǔ)了GridView內(nèi)置分頁以及PageDatasource類輔助分頁的不足,將分頁數(shù)據(jù)邏輯和頁面UI分離開來,非常有利于SQL分頁的實(shí)現(xiàn)。

首先需要下載AspNetPager控件:http://www.webdiyer.com/downloads/

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084908143.png

在VS中引用AspNetPager控件,歡迎參考博文《VS添加Ajax》中添加選擇項(xiàng)部分(有圖有真相),此處不再贅述:http://blog.csdn.net/u010773667/article/details/38518461

首先在web窗體中拖放一個(gè)gridview控件用來顯示數(shù)據(jù),選中AspNetPager控件拖拽到web窗體相應(yīng)位置用來進(jìn)行分頁設(shè)置。顯示如下:

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084908147.png

對分頁提示信息進(jìn)一步改進(jìn)。選中spNetPager控件,在右下角將會顯現(xiàn)一個(gè)小按鈕,單擊打開,對導(dǎo)航按鈕顯示文本進(jìn)行設(shè)置

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084908148.png

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084908149.png

改進(jìn)效果:

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084909150.png

對頁索引文本或下拉框進(jìn)行設(shè)置

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084909151.png

改進(jìn)效果見下圖:

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084909152.png

如果還想顯示的更加具體,可進(jìn)行自定義信息區(qū)顯示方式及內(nèi)容設(shè)置

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084909153.png

上述對控件進(jìn)行的所有設(shè)置將在VS中自動生成相應(yīng)代碼,so我們也可以通過手動輸入代碼進(jìn)行設(shè)置。

data-cke-saved-src=http://www.2cto.com/uploadfile/Collfiles/20140827/20140827084909154.png

好了,設(shè)置好了前臺,接下來就要進(jìn)行數(shù)據(jù)綁定了

?
1234567891011121314151617181920212223242526272829303132PRotected void Page_Load(object sender, EventArgs e){ if (!Page .IsPostBack ){string caid = Request.QueryString[caid];DataTable dt = new NewsManager().SelectAllNewsByCaId(caid); anpCa.AlwaysShow = true;anpCa.PageSize = 5;anpCa.RecordCount = dt.Rows.Count;int startIndex = anpCa.PageSize * 0;int endIndex = anpCa.PageSize * 1; gvDataBind(caid, startIndex, endIndex); }} private void gvDataBind(string caid,int startIndex,int endIndex){ DataTable dt = new NewsManager().SelectPartNewsByCaId(caid, startIndex, endIndex);if (dt.Rows.Count != 0){lblCategory.Text = dt.Rows[0][name].ToString(); //使類別標(biāo)題顯示相應(yīng)的類別名稱}gvNew.DataSource = dt;gvNew.DataBind();}protected void anpCa_PageChanged(object sender, EventArgs e){string caid = 6;int startIndex = anpCa.PageSize * (anpCa.CurrentPageIndex - 1)+1;int endIndex = anpCa.PageSize * (anpCa.CurrentPageIndex);gvDataBind(caid, startIndex, endIndex);}}

在D層數(shù)據(jù)查詢的部分代碼展示

#region 根據(jù)類別ID取出該類別下的所有新聞的分頁顯示        ///         /// 根據(jù)類別ID取出該類別下的所有新聞        ///         ///類別ID        ///         public DataTable SelectPartNewsByCaId(string caId,int startIndex, int endIndex)        {            DataTable dt = new DataTable();            SqlParameter[] paras = new SqlParameter[]{           new SqlParameter (@caId,caId ),           new SqlParameter (@startIndex,startIndex ),           new SqlParameter (@endIndex,endIndex )    };            dt = sqlhelper.ExecuteQuery(dbo.category_showpage, paras, CommandType.StoredProcedure);            return dt;        }        #endregion存儲過程(很重要)
?
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大英县| 顺昌县| 蓝田县| 浦县| 资源县| 龙川县| 吕梁市| 项城市| 绥中县| 浦县| 鸡东县| 高青县| 文登市| 汽车| 玉门市| 呼和浩特市| 简阳市| 顺平县| 永靖县| 绥中县| 文登市| 牟定县| 松江区| 仁寿县| 九龙坡区| 林州市| 桦南县| 广州市| 龙里县| 阿克陶县| 高阳县| 沭阳县| 大城县| 错那县| 垫江县| 娄烦县| 宿松县| 天津市| 临沧市| 阿克陶县| 吉安市|