這個資料來源,分成兩部分,一是從資料類別中調出數據,然後在本資料來源中對分頁參數以及頁面分頁輔助控制項進行操作!在前面有三個控制控制翻頁,一個下拉列表,兩個LinkButton!
關於更多類別中資料操作的方法請參考http://thcjp.cnblogs.com/archive/2006/06/18/428775.html這篇
下面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();
}