:: การตัดหน้าข้อมูลแสดงผล ::









ติดต่อเรา

webmaster_dwthai @yahoo.com
webmaster@dwthai.com
08-9495-7296

การแบ่งหน้าแสดงผลข้อมูลดูรู้สึกว่า..จะเป็นปัญหาสำหรับผู้ที่เขียน Web Application มือใหม่ทั้งหลาย เนื่องจากว่า.. ต้องอาศัยแนวคิด และการคำนวนอยู่พอสมควรเลยทีเดียว ผมเองในการเริ่มฝึกเขียนใหม่ ๆ ก็งมโข่งอยู่หลายวันเหมือนกันกับเรื่องตรงนี้ ในบทความนี้จึงนำเอามาให้ท่านลองศึกษากันดูครับ

การตัดหน้าข้อมูลแสดงผล


<%

Set conn=Server.CreateObject("ADODB.Connection") 'ทำการสร้าง Obj Connection
conn.open="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.Mappath("data_test.mdb")
Sql="Select * From name_data" ' ทำการ Select ข้อมูลจาก Table ที่ต้องการ
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open Sql,conn,1,1
' โปรแกรมในการแบ่งหน้าข้อมูล
all_data=rs.RecordCount 'นับจำนวนข้อมูลทั้งหมดที่อยู่ใน table
IF all_data=0 Then
   Response.Write "ยังไม่มีข้อมูล"
Else
   page=Request("page")
' ทำการรับค่าจาก URL ซึ่งจะส่งมาเพื่อบอกว่าว่าผู้ใช้กำลังเรียกชมหน้าที่เท่าไหร่ของข้อมูล ส่งมาในแบบ GET ค่าคีย์คือ page
pre_page=10 'จำนวนข้อมูลที่ต้องการต่อ 1 เพจ
IF page="" Then 'หากยังไม่มีการส่งค่าการเรียกชมหน้ามาให้กำหนดว่า Default คือ หน้าข้อมูลที่ 1
   page=1
Else
   page=Int(page) ' ทำการแปลงค่าที่ได้รับให้อยู่ในรูปแบบของตัวเลขเพื่อใช้ในการคำนวนต่อไป
End IF
totalpage=all_data\pre_page
'ทำการหาค่าเพจทั้งหมดของมูล เช่น ข้อมูลทั้งหมดมี 10 rec แต่เราต้องการแบ่งการแสดงผลออกเป็นหน้าละ 5 rec เราก็จะได้ตัวแปร totlapage เท่ากับ 2 เป็นต้น

IF (all_data mod pre_page) <>"0" Then
' หากเป็นการหารที่ไม่ลงตัว เราต้องทำการ MOD เพื่อคำนวนหา เศษของหน้าที่เหลืออีก หากยังเหลือเศษให้ทำการบวก 1 เข้ากับตัวแปร totalpage
  totalpage=totalpage+1
End IF
rs.Move pre_page*(page-1) 'ทำการเลื่อน Record ไปตามจำนวนที่ทำการคำนวนได้
IF page<> totalpage Then
   endrecord=pre_page
Else
   IF (all_data mod pre_page)=0 Then
     endrecord=pre_page
   Else
     endrecord=(all_data mod pre_page)
   End IF
End IF
End IF
' จบการคำนวนเพื่อการแบ่งหน้าแสดงข้อมูล
For list=1 To endrecord ' ทำการวนรอบเพื่อการแสดงผลข้อมูล
   Response.write rs("Name")&"<br>"
   rs.MoveNext
Next
rs.close : Set rs=Nothing
conn.close : Set conn=Nothing
For p=1 To totalpage 'สร้าง Link สำหรับการ Click เลือกหน้าแสดงข้อมูล
   Response.write "<a href="&Request.ServerVariables("URL")&"?page="&p&">หน้าที่"&p&"</a> "
Next

%>

 

สงวนลิขสิทธิ์ © 2546-2550 โดย dwthai.com ห้ามการ copy ส่วนใดส่วนหนึ่งของเว็บไซต์แห่งนี้.