このデータ ソースは 2 つの部分に分かれています。1 つはデータ クラスからデータを呼び出し、このデータ ソースでページング パラメーターとページング補助コントロールを操作することです。前面には、ページめくりを制御する 3 つのコントロール、ドロップダウン リスト、および 2 つのリンクボタンがあります。
クラスでのデータ操作のその他の方法については、 http://thcjp.cnblogs.com/archive/2006/06/18/428775.html を参照してください。
fill() メソッドの呼び出しは非常に単純なので、再度バインドする必要があります。ページのどこかに fill() を書いてください。ただし、これは、たとえばページめくりアクションが実行された後に書き込む必要があります。
以下は db クラスの ds メソッドです。
パブリック静的 DataTable ds(string que)
{//SQL 定義のメッセージがロードされたデータ テーブルを返します。
OleDbConnection con = odb.con();
OleDbDataAdapter oda = new OleDbDataAdapter();
oda.SelectCommand=new OleDbCommand(que,con);
DataSet ds = 新しい DataSet();
oda.Fill(ds,"thc");
ds.Tables["thc"] を返します。
con.Close();
次のメソッドで使用されるデータ ソースは上記のものです
プライベート void fill()
{//ページ内に複数のバインディングがあるため、これを行う方法
//現在のページインデックスを保存するためにここに非表示のラベルを設定します
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 = カップ-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(オブジェクト送信者, EventArgs e)
{//ページ番号ドロップダウン メニュー イベント
pagelbl.Text = pageddl.SelectedItem.Text.ToString();
埋める();
}
protected void pagedown_Click(オブジェクト送信者, EventArgs e)
{//次のページのイベント
pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text)+1);
埋める();
}
protected void pageup_Click(オブジェクト送信者, EventArgs e)
{//前のページのイベント
pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text)-1);
埋める();
}