XML資料的分頁顯示

2021-09-05 14:29:34 字數 1375 閱讀 8747

我的個人**上有乙個頁面,主要介紹了一些我喜歡的書籍,目前有9本,這樣把頁面拉的很長,挺影響美觀的,於是決定分頁顯示它們。我沒有sql資料庫,而且我也不想用複雜的資料庫來存放這種簡單的資料,所以我用的是xml檔案,把它讀入dataset,然後再在repeater中顯示。

如果是sql資料庫或access等,分頁到是挺簡單的,但是我存放資料的是xml檔案,又不能用sql語句,怎麼辦呢?問了乙個高手,知道了還有一種叫xpath的語言,又學到一些東西了,不敢偷懶,馬上記下。

首先嘗試從快取中讀取

xmldatadocument doc 

=sitecache.get(

"doc") 

asxmldatadocument;

dataset ds 

=sitecache.get(

"books") 

asdataset;

if(doc 

==null

&&ds 

==null

) //總資料項為datarow的個數

pager.totalrecords 

=ds.tables[

0].rows.count;

intcurrent 

=pager.pageindex 

*pager.pagesize;

inttarget 

=current 

+pager.pagesize;

string

xpath 

=string.format(

"/books/book[position()> and position()<=]

", current, target);

xmlnodelist nodes 

=doc.documentelement.selectnodes(xpath);

datarow row 

=null

; dataset ds2 

=ds.clone();

ds2.clear();

foreach

(xmlnode node 

innodes) 

books.datasource 

=ds2;

books.databind();

上面的**中,pager是乙個分頁控制項,books是乙個repeater,用xpath選擇要讀取的節點,把它賦值到乙個datarow中,然後將之匯入datatable中,再繫結到repeater上,就可以顯示了。這裡遇到個小問題,不能用ds2.tables[0].rows.add(row);這個語句,否則會拋個「此datarow已屬於另乙個datatable」的異常,不知為什麼,改為importrow就沒問題了。希望哪位高手知道,請告訴我一聲,謝謝。

分頁顯示資料

oracle的分頁查詢可以利用rowid偽列。db2的分頁查詢可以利用row number over 聚合函式。mysql有limit。access彷彿先天缺陷,僅提供了top n。那如何利用top來實現分頁查詢呢?假設在access中有表t1 create table t1 tc1 varchar...

資料分頁顯示(二)

三 伺服器查詢出資料,發往前端 1 首先前端呼叫了伺服器的某個函式,比如叫 user getpagedlist int pageindex,int pagesize,dictionarycondition,string orderby 在這裡需要傳遞四個引數 第幾頁 每頁記錄條數 查詢條件 排序條件...

php mysql資料分頁顯示

建立連線 mysqli newmysqli localhost root message if mysqli connect errno mysqli query set names utf8 編碼強制轉換,否則中文顯示亂碼 獲取當前頁數 if isset get page else 每頁數量 pa...