這個數據源,分兩部分,一是從數據類中調出數據,然後在本數據源中對分頁參數以及頁面分頁輔助控件進行操作!在前面有三個控件控制翻頁,一個下拉列表,兩個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();
}