|
|
Copyright © 2003-2009 By Suthep Sangvirotjanaphat |
|
|
|
Mobile: 089-967-2200, 081-915-7816 Phone: 0-2992-4877 Fax: 0-2992-4878 Fast Contact Us |
GreatFriends.Biz Community |
Custom Search
|
1. กำหนดตัวแปร currentPageIndex ให้เป็น property ของ Page และเก็บค่าไว้ใน ViewState เพื่อให้จำหน้าปัจจุบันได้ จะได้สามารถเลื่อนหน้าไปมาได้
C#
private int currentPageIndex { get { return (int)ViewState["currentPage"]; } set { ViewState["currentPage"] = value; } }
VB
Private Property currentPageIndex() As Integer
Get
Return Convert.ToInt32(ViewState("currentPage"))
End Get
Set(ByVal value As Integer)
ViewState("currentPage") = value
End Set
End Property
2. สร้าง instance object ของ PagedDataSource และกำหนด Bind ข้อมูลเข้ากับ objec PagedDataSource
C#
private void BindControl() {
// ...
// อ่านข้อมูลจากฐานข้อมูล มาใส่ไว้ใน DataTable dt
// ...
DataView dv = dt.DefaultView;
PagedDataSource pgNdx = new PagedDataSource();
pgNdx.DataSource = dv; // Bind DataView ให้กับ PageDataSource object
pgNdx.PageSize = 5;
// กำหนดจำนวนรายการที่ต้องการให้แสดงในแต่ละหน้าpgNdx.AllowPaging =
true; // กำหนดว่าให้มีการทำ paging ได้ddlPageIndex.Items.Clear();
// เพิ่มจำนวนหน้าลงใน DropDownList Control for (int i = 0; i <= (pgNdx.PageCount - 1); i++) {ddlPageIndex.Items.Add(
new ListItem(Convert.ToString(i + 1), Convert.ToString(i + 1)));}
ddlPageIndex.SelectedIndex = currentPageIndex;
pgNdx.CurrentPageIndex = currentPageIndex;
DataList1.DataSource = pgNdx;
DataList1.DataBind();
}VB
Private Sub BindControl()
'-- ...
'-- อ่านข้อมูลจากฐานข้อมูล มาใส่ไว้ใน DataTable dt
'-- ...
Dim dv As DataView = dt.DefaultView
Dim pgNdx As New PagedDataSource()
pgNdx.DataSource = dv '-- Bind DataView ให้กับ PageDataSource object
pgNdx.PageSize = 5 '-- กำหนดจำนวนรายการที่ต้องการให้แสดงในแต่ละหน้า
pgNdx.AllowPaging = True '-- กำหนดว่าให้มีการทำ paging ได้
ddlPageIndex.Items.Clear() '-- เพิ่มจำนวนหน้าลงใน DropDownList Control
For i As Integer = 0 To (pgNdx.PageCount - 1)
ddlPageIndex.Items.Add(New ListItem(Convert.ToString(i + 1), Convert.ToString(i + 1)))
Next
ddlPageIndex.SelectedIndex = currentPageIndex
pgNdx.CurrentPageIndex = currentPageIndex
DataList1.DataSource = pgNdx
DataList1.DataBind()
End Sub
3. กำหนดการจัดการเมื่อมีการเปลี่ยนหน้าโดยการเลือกจาก DropDownList Control
C#
void ddlPageIndex_SelectedIndexChanged(object sender, EventArgs e) {
currentPageIndex = Convert.ToInt32(ddlPageIndex.SelectedValue) - 1;
BindControl();
}
VB
Protected Sub ddlPageIndex_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlPageIndex.SelectedIndexChanged
currentPageIndex = CInt(ddlPageIndex.SelectedValue) - 1
BindControl()
End Sub
VB
Private Sub BindControl()
'-- ...
'-- อ่านข้อมูลจากฐานข้อมูล มาใส่ไว้ใน DataTable
'-- ...
Dim pgNdx As New PagedDataSource()
pgNdx.DataSource = dv '-- Bind DataView ให้กับ PageDataSource object
pgNdx.PageSize = 5 '-- กำหนดจำนวนรายการที่ต้องการให้แสดงในแต่ละหน้า
pgNdx.AllowPaging = True '-- กำหนดว่าให้มีการทำ paging ได้
ddlPageIndex.Items.Clear() '-- เพิ่มจำนวนหน้าลงใน DropDownList Control
For i As Integer = 0 To (pgNdx.PageCount - 1)
ddlPageIndex.Items.Add(New ListItem(Convert.ToString(i + 1), Convert.ToString(i + 1)))
Next
ddlPageIndex.SelectedIndex = currentPageIndex
pgNdx.CurrentPageIndex = currentPageIndex
btnGoBack.Enabled = Not (pgNdx.IsFirstPage) '-- ถ้าหากเป็นหน้าแรกให้ disable ปุ่ม Back
btnGoNext.Enabled = Not (pgNdx.IsLastPage) '-- ถ้าหากเป็นหน้าสุดท้ายให้ disable ปุ่ม Next
DataList1.DataSource = pgNdx
DataList1.DataBind()
End Sub
จากนั้นมาจัดการกับการเปลี่ยนหน้าเมื่อมีการกดปุ่ม Back และ Next
C#
void btnGoBack_Click(object sender, EventArgs e) {
currentPageIndex -= 1;
BindControl();
}
void btnGoNext_Click(object sender, EventArgs e) {
currentPageIndex += 1;
BindControl();
}
VB
Protected Sub btnGoBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGoBack.Click
currentPageIndex -= 1
BindControl()
End Sub
Protected Sub btnGoNext_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGoNext.Click
currentPageIndex += 1
BindControl()
End Sub

|
|
firefly |
วันที่ส่ง: 15 ต.ค. 52 10:47 GMT+7 วันที่ปรับล่าสุด: 22 ต.ค. 52 23:30 GMT+7 |
ขอบคุณครับ|
|
nano |
วันที่ส่ง: 15 ต.ค. 52 13:35 GMT+7 วันที่ปรับล่าสุด: 15 ต.ค. 52 13:35 GMT+7 |

|
|
kop |
วันที่ส่ง: 15 ต.ค. 52 14:20 GMT+7 วันที่ปรับล่าสุด: 15 ต.ค. 52 14:20 GMT+7 |
|
|
sf |
วันที่ส่ง: 22 ต.ค. 52 14:47 GMT+7 วันที่ปรับล่าสุด: 22 ต.ค. 52 14:47 GMT+7 |
ขยันจังเลยพี่ริน 



วันนี้ไม่ได้ไปกินข้าวร้านตาชงด้วย เดี๋ยวว่างๆ นัดกันใหม่นะครับ
|
|
nas |
วันที่ส่ง: 22 ต.ค. 52 23:30 GMT+7 วันที่ปรับล่าสุด: 22 ต.ค. 52 23:30 GMT+7 |
|
เรียน .NET/OOAD กับ อ.สุเทพ (surrealist) Microsoft Most Valuable Professional (MVP): |
![]() ลงทะเบียนเรียน |