上面我們談到了在datagrid控件中顯示數(shù)據(jù),并且也談到了在datagrid控件中顯示部分數(shù)據(jù),但在測試的過程中發(fā)現(xiàn),如果數(shù)據(jù)表中有1000條記錄,則datagrid控件中會對應地生成1001行,很明顯,這不符合我們的習慣,所以這次我來介紹一下在datagrid對記錄進行分頁! 對于分頁功能,有一個要求,只有在datagrid控件的數(shù)據(jù)源實現(xiàn)了Icollection接口的情況下啟用分頁功能,datareader沒有實現(xiàn)此接口,所以要使用datatable來代替,關于datatable請參考我寫的dataset初步,可在文章系統(tǒng)中找到。 在datagrid控件中進行分頁不需要像ASP中那樣,只需要一個子過程和觸發(fā)此子過程的事件就行了,與ASP比起來顯得簡單得多。不多說了,let's Go!
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝] 下面來分析一下代碼,這段代碼與前面比起來有一部分差異,首先我們導入了一個新的名稱空間<%@ import namespace="system.data"%>,因為前面說過了,要啟用分頁功能必須要實現(xiàn)Icollection接口,所以要導入system.data名稱空間;然后寫了三個子過程,第一個子過程在頁面被初次調(diào)用時就進行databind子過程。第二個子過程就是前面說過的進行數(shù)據(jù)綁定了。關鍵看第三個子過程,過程名為page_changed,注意它的二個參數(shù),當觸發(fā)此子過程時,把名為mydatagrid控件的當前頁面索引值改為新的索引值mydatagrid.currentpageindex=e.newpageindex,然后重新綁定數(shù)據(jù)到該控件上。 page_changed子過程在什么情況下被觸發(fā)呢?所以我們在datagrid控件中重新設置了4個屬性值: allowpaging="true" onpageindexchanged="page_changed" pagerstyle-mode="numericpages" pagesize="15" 第一行代碼是允許進行分頁,如果想實現(xiàn)分頁功能,該屬性必須設置成true,默認下是false 第二行是觸發(fā)page_changed子過程的事件 第三行是設置分頁導航的顯示模式,這里設置是數(shù)字模式,即1 2 3 4 5 ……,默認是nextprev(上一頁 下一頁) 第四行是設置每頁顯示的記錄數(shù),這里設定是每頁顯示15第記錄,默認為10條記錄 通過這些代碼就可以實現(xiàn)datagrid的分頁功能了,當然這里會顯示數(shù)據(jù)表中的所有字段,如果不想顯示所有字段,請相應地把datagrid的autogeneratecolumns改成false,具體方法請參考前面的教程。 好了,實現(xiàn)datagrid的分頁功能就已經(jīng)完成了,在后面將介紹datagrid的排序功能!
出處:
責任編輯:幻想曲
上一頁 ASP.NET中的datagrid控件初步 下一頁 ASP.NET中的datagrid控件初步
◎進入論壇網(wǎng)絡編程版塊參加討論
|