ข้อความ/waterswea
1. ฟังก์ชั่นโปรแกรม: ใช้เพจสำหรับ Repeater
2. การออกแบบฟอร์ม:
1. สร้างเว็บแอปพลิเคชัน ASP.NET ใหม่ชื่อ Repeater2 และเส้นทางการบันทึกคือ http://192.168.0.1/Repeater2 (หมายเหตุ: บนของฉัน คอมพิวเตอร์ IP ของเว็บไซต์คือ 192.168.0.1 และโฮมไดเร็กทอรีคือโฟลเดอร์ D:web) แล้วคลิกตกลง
2. เพิ่มตารางที่มีสามแถวและหนึ่งคอลัมน์ลงในแบบฟอร์ม เพิ่มตัวควบคุม Repeater ไปที่แถวแรกของตาราง เพิ่มตัวควบคุม Label สองรายการในแถวที่สองของตาราง และเพิ่มปุ่ม Button สี่ปุ่มไปที่แถวที่สามของ โต๊ะ.
3. สลับไปที่หน้าต่างโค้ด HTML และเพิ่มโค้ดต่อไปนี้ระหว่าง <asp:Repeater id="Repeater1" runat="server"> และ </asp:Repeater>:
<ItemTemplate>
<table id="Table2" style="FONT-SIZE: x-small" width="498">
<tr>
<td><%#DataBinder.Eval(คอนเทนเนอร์,"DataItem.employeeid")%></td>
<td><%#DataBinder.Eval(คอนเทนเนอร์,"DataItem.lastname")%></td>
</tr>
</ตาราง>
</ItemTemplate>
3. การออกแบบโค้ด:
นำเข้า System.Data.SqlClient
WebForm ชั้นเรียนสาธารณะ1
สืบทอด System.Web.UI.Page
Dim scon เป็น SqlConnection ใหม่ ("server=localhost;database=northwind;uid=sa;pwd=123")
หรี่ sDA เป็น SqlDataAdapter
Dim ds เป็นชุดข้อมูล
Dim currentPage As Integer 'บันทึกว่าคุณกำลังอยู่หน้าไหน Dim maxPage As Integer 'มีกี่แถวในหนึ่งหน้า? มีทั้งหมด
' รหัสแบบฟอร์ม
omitPrivate Sub Page_Load (ผู้ส่ง ByVal As System.Object, ByVal e As System.EventArgs) จัดการ MyBase.Load
ถ้าไม่ใช่ Page.IsPostBack แล้ว
sDA = SqlDataAdapter ใหม่ ("เลือกรหัสพนักงาน, นามสกุลจากพนักงานเรียงลำดับตามรหัสพนักงาน", scon)
ds = ชุดข้อมูลใหม่
พยายาม
sDA.Fill(ds, "พนักงาน")
'รับจำนวนแถวทั้งหมด rowSum = ds.Tables(0).Rows.Count
จับอดีตเป็นข้อยกเว้น
ผลรวมแถว = 0
สิ้นสุด ลอง
'หากไม่มีข้อมูล ให้ออกจากกระบวนการถ้า rowSum = 0 จากนั้นออกจากย่อย
'คำนวณจำนวนหน้าทั้งหมดของข้อมูลการท่องเว็บหาก rowSum Mod rowCount > 0 จากนั้น
'ถ้ามีเศษให้บวก 1'
maxPage = rowSum rowCount + 1
อื่น
'หาร maxPage = rowSum rowCount พอดี
สิ้นสุด ถ้า
currentPage = 1
'เรียกหน้าอ่านกระบวนการข้อมูลที่ถูกผูกไว้ (หน้าปัจจุบัน)
ผูกข้อมูล()
Label2.Text = maxPage
'ปุ่มหน้าแรกและหน้าก่อนหน้ามองไม่เห็นปุ่ม1.Visible = False
Button2.Visible = เท็จ
สิ้นสุดถ้า
End Sub
'สร้างกระบวนการผูกข้อมูล
SubBindData()
Repeater1.DataSource = ds
Repeater1.DataBind()
Label1.Text = หน้าปัจจุบัน
สิ้นสุด Sub
'สร้างกระบวนการเพื่อเติมชุดข้อมูล
หน้าอ่านย่อย (ByVal n As Integer)
sDA = SqlDataAdapter ใหม่ ("เลือกรหัสพนักงาน, นามสกุลจากพนักงานเรียงลำดับตามรหัสพนักงาน", scon)
ds = ชุดข้อมูลใหม่
ds.เคลียร์()
sDA.Fill(ds, (n - 1) * rowCount, rowCount, "พนักงาน")
สิ้นสุด
ปุ่มโฮม
ย่อย
Private Sub Button1_Click (ผู้ส่ง ByVal As System.Object, ByVal e As System.EventArgs) จัดการ Button1.Click
currentPage = 1
'เรียกกระบวนการกรอกหน้าอ่านชุดข้อมูล (หน้าปัจจุบัน)
'ผูก dataBindData()
'ตั้งค่าปุ่มหน้าแรกและหน้าแรกให้มองไม่เห็น และแสดงปุ่มหน้าถัดไปและปุ่มหน้าสุดท้าย Button1.Visible = False
Button2.Visible = เท็จ
Button3.Visible = จริง
Button4.Visible = True
End Sub
'ปุ่มหน้าก่อนหน้า
Button2_Click ส่วนตัวย่อย (ผู้ส่ง ByVal As System.Object, ByVal e As System.EventArgs) จัดการ Button2.Click
'หากหน้าปัจจุบันเป็นหน้าที่ 2 ให้ตั้งค่าปุ่มหน้าแรกและหน้าก่อนหน้าให้มองไม่เห็นถ้า Label1.Text > 2 จากนั้น
Button3.Visible = จริง
Button4.Visible = จริง
อื่น
Button1.Visible = เท็จ
Button2.Visible = เท็จ
Button3.Visible = จริง
Button4.Visible = จริง
สิ้นสุดถ้า
currentPage = Label1.Text - 1
อ่านหน้า (หน้าปัจจุบัน)
ผูกข้อมูล()
สิ้นสุด
ปุ่มย่อย 'หน้าถัดไป
Private Sub Button3_Click (ผู้ส่ง ByVal As System.Object, ByVal e As System.EventArgs) จัดการ Button3.Click
'ถ้าหน้าปัจจุบันเป็นหน้าสุดท้าย ให้ตั้งค่าปุ่มหน้าสุดท้ายและหน้าถัดไปให้มองไม่เห็นถ้า Label1.Text < Label2.Text - 1 จากนั้น
Button1.Visible = จริง
Button2.Visible = จริง
อื่น
Button1.Visible = จริง
Button2.Visible = จริง
Button3.Visible = เท็จ
Button4.Visible = เท็จ
สิ้นสุดถ้า
หน้าปัจจุบัน = Label1.Text + 1
อ่านหน้า (หน้าปัจจุบัน)
ผูกข้อมูล()
สิ้นสุดย่อย
'ปุ่มหน้าสุดท้ายPrivate Sub Button4_Click (ผู้ส่ง ByVal As System.Object, ByVal e As System.EventArgs) จัดการ Button4.Click
'ตั้งค่าหน้าปัจจุบันเป็นจำนวนหน้าสูงสุด currentPage = Label2.Text
อ่านหน้า (หน้าปัจจุบัน)
ผูกข้อมูล()
Button1.Visible = จริง
Button2.Visible = จริง
Button3.Visible = เท็จ
Button4.Visible = เท็จ
จบหมวดย่อย
End Class
เป็นดังนี้: