這個數據源,分兩部分,一是從數據類中調出數據,然后在本數據源中對分頁參數以及頁面分頁輔助控件進行操作!在前面有三個控件控制翻頁,一個下拉列表,兩個linkbutton!
下面 fill() 方法調用很簡單,在頁面中要重新綁定的地方 寫上 fill() 就可以了,呵呵!但是一定要寫哦,例如翻頁動作執行后!
下面是db類中的ds方法
public static datatable ds(string que)
{//返回一個裝載了sql制定留言的數據表,
oledbconnection con = odb.con();
oledbdataadapter oda = new oledbdataadapter();
oda.selectcommand=new oledbcommand(que,con);
dataset ds = new dataset();
oda.fill(ds,"thc");
return ds.tables["thc"];
con.close();
}下面方法使用的數據源就是上面的這個
private void fill()
{//做的一個方法,因為頁內將有多次的綁定
//這里設置一個隱藏的label,用與儲存當前的頁索引
int cup = convert.toint32(pagelbl.text);
pageddatasource ps = new pageddatasource();//new一個分頁數據源
ps.datasource = odb.ds("select * from guest order by id desc").defaultview;//送一個sql語句進去,確定該數據源的數據源,有點繞吧,呵呵
ps.allowpaging = true;//允許分頁
ps.pagesize = 2;//設置頁的數量
ps.currentpageindex = cup-1;
if (!ispostback)
{//判斷頁面是否第一次載入
for (int i = 1; i <= ps.pagecount; i++)
{//循環出頁碼
pageddl.items.add(i.tostring());
}
}
//下面主要是控制上下翻頁按紐是否起用
pageup.enabled = true;
pagedown.enabled = true;
if (ps.isfirstpage)
{//如果是最前頁,上頁按紐不可用
pageup.enabled = false;
}
if (ps.islastpage)
{//如果是最后頁,下頁按紐不可用
pagedown.enabled = false;
}
//設置頁碼下拉菜單當前選中的值
pageddl.selecteditem.text = cup.tostring();
//終于可以綁定給datalist了
datalist1.datasource = ps;
datalist1.datakeyfield = "id";
datalist1.databind();
}
再下面是翻頁事件的處理
protected void pageddl_selectedindexchanged(object sender, eventargs e)
{//頁碼下拉菜單事件
pagelbl.text = pageddl.selecteditem.text.tostring();
fill();
}
protected void pagedown_click(object sender, eventargs e)
{//下頁事件
pagelbl.text = convert.tostring(convert.toint32(pagelbl.text)+1);
fill();
}
protected void pageup_click(object sender, eventargs e)
{//上頁事件
pagelbl.text = convert.tostring(convert.toint32(pagelbl.text)-1);
fill();
}
新聞熱點
疑難解答
圖片精選