ListView實現分頁


ListView實現分頁有兩種方式,第一種通過DataPager控件。第二種是編寫sql語句實現。第一種是一次性將數據從數據庫中取出。

只適用於數據量小的分頁。

1、通過DataPager控件實現分頁:

1、右擊項目-添加新項-添加數據集

2.將需要的表拖進數據集

3.在數據集里可以添加查詢語句。

4.在頁面中添加ObjectDataSource控件、DataPager控件、ListView控件。將數據集綁定給ObjectDataSource控件,

在將ListViw控件的DataSourceID設置為ObjectDataSource的id。然后設置DataPager控件的PagedControlID為listView的id。這樣就可以綁定給ListView控件了。當然在ListView控件中選擇分頁也會自動在內部創建DataPage控件。

這樣實現的分頁是查詢出表中所有的數據,並不適合數據量大分頁。

第二種通過編寫sql語句實現:

1.在數據集中添加表,在添加查詢,查詢語句為:

select * from (select *,Row_number() over(order by id) rownum from gooodsInfo)  t   where
t.rownum > @startRowIndex and  t.rownum <= @startRowIndex + @maximumRows.

ps:Row_number() 是SqlServer中的內置函數,作用是獲取結果集的序號  over(order by id) 是根據id來排序。Row_number()必須結合over來使用。rownum是別名

上面使用子查詢的原因是如果是select * from  表名  where 字段=...  這樣的寫法,這里的字段是從表里去拿的。如果你要用序號,表里是沒有序號的,是會報列名無效的。所以必須用子查詢。

上面的兩個參數@startRowIndex 表示開始的行數,@maximumRows表示本頁的行數,這里的參數名稱不能隨便命名的。這里的參數必須跟ObjectDataSource

中的startRowIndex參數和maximumRows相同。方法命名為GetPagedData。

然后在添加sql語句。選擇select(返回單個值)。這個方法用於返回表中有多少行。

先按照正常的流程配置ObjectDataSource,讓ListView自動生成Template,再修改ObjectDataSource的EnablePaging = “True”,SelectCountMethod設置為取得行數的方法。 然后在把SelectMethod 設置為上面添加的GetPagedData。

 

DataPager的PageSize屬性為一頁的條數。DataPager中按鈕顯示風格由Fields中的字段設置,可以放置多個字段,分NextPreviousPagerField
(上一頁、下一頁、首頁、末頁等)、NumericPagerField(數字頁號)、TemplatePagerField用模板自定義。在代碼中的Fields中修改。
NextPreviousPageField主要屬性:ButtonCssClass: 按鈕的樣式;ButtonType,按鈕渲染成什么
(Button按鈕、Link超鏈接、Image圖片);
FirstPageImageUrl,【第一頁】按鈕圖片地址;
FirstPageText 【第一頁】 按鈕文本
showFirstButton,是否顯示【第一頁】
NumericPageField主要屬性:ButtonCount,數字的個數;按鈕渲染成什么(Button、Link、Image);CurrentPageLabelCssClass當前頁文本的樣式:NumericButtonCSSClass數字按鈕的樣式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM