Text/waterswea
1. 프로그램 기능: Repeater에 대한 페이징 구현
2. 양식 디자인:
1. Repeater2라는 이름의 새 ASP.NET 웹 애플리케이션을 생성하고 저장 경로는 http://192.168.0.1/Repeater2 입니다(참고: 내 컴퓨터 웹사이트의 IP는 192.168.0.1이고 홈 디렉터리는 D:web 폴더입니다.) 확인을 클릭하세요.
2. 3개의 행과 1개의 열이 있는 테이블을 양식에 추가하고, 테이블의 첫 번째 행에 Repeater 컨트롤을 추가하고, 테이블의 두 번째 행에 두 개의 Label 컨트롤을 추가하고, 세 번째 행에 4개의 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(Container,"DataItem.employeeid")%></td>
<td><%#DataBinder.Eval(Container,"DataItem.lastname")%></td>
</tr>
</table>
</ItemTemplate>
3. 코드 디자인:
System.Data.SqlClient 가져오기
공개 클래스 WebForm1
System.Web.UI.Page Dim scon을 새 SqlConnection으로 상속
("server=localhost;database=northwind;uid=sa;pwd=123")
SqlDataAdapter로 희미한 sDA
데이터 세트로 ds 측정
Dim currentPage As Integer '현재 어느 페이지에 있는지 기록합니다. Dim maxPage As Integer '총 페이지 수는 얼마입니까? Const rowCount As Integer = 3 '한 페이지에 몇 개의 행이 있습니까?
양식
코드
omitPrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
sDA = New SqlDataAdapter("직원 ID별로 직원 순서에서 직원 ID, 성 선택", scon)
ds = 새 데이터세트
노력하다
sDA.Fill(ds, "직원")
'총 행 수를 가져옵니다. rowSum = ds.Tables(0).Rows.Count
ex를 예외로 잡아라
행합 = 0
End Try
'데이터가 없으면 프로세스를 종료합니다. rowSum = 0이면 Sub를 종료합니다.
'검색 데이터의 총 페이지 수를 계산합니다. If rowSum Mod rowCount > 0 Then
'나머지가 있으면 1을 더한다.
maxPage = rowSum rowCount + 1
또 다른
'maxPage = rowSum rowCount를 정확하게 나눕니다.
currentPage = 1
인 경우 종료
'바인딩된 데이터 프로세스 readpage(currentPage)를 호출합니다.
바인딩데이터()
Label2.Text = maxPage
'홈 및 이전 페이지 버튼은 보이지 않습니다Button1.Visible = False
Button2.Visible = 거짓
종료 조건
End Sub
'데이터 바인딩 프로세스 만들기
하위 바인딩데이터()
Repeater1.DataSource = ds
Repeater1.DataBind()
Label1.Text = 현재페이지
End Sub
'데이터 세트를 채우는 프로세스를 만듭니다.
하위 읽기 페이지(ByVal n As Integer)
sDA = New SqlDataAdapter("직원 ID별로 직원 순서에서 직원 ID, 성 선택", scon)
ds = 새 데이터세트
ds.지우기()
sDA.Fill(ds, (n - 1) * rowCount, rowCount, "직원")
End Sub
'홈 버튼
currentPage = 1
처리
'데이터 세트를 채우는 프로세스 호출 readpage(currentPage)
'데이터 바인딩BindData()
'홈페이지와 첫 페이지 버튼을 보이지 않게 설정하고, 다음 페이지와 마지막 페이지 버튼을 표시합니다. Button1.Visible = False
Button2.Visible = 거짓
Button3.Visible = True
Button4.Visible = True
End Sub
'이전 페이지 버튼
Private Sub Button2_Click(ByVal 송신자는 System.Object로, ByVal e는 System.EventArgs로) Button2.Click을 처리합니다.
'현재 페이지가 두 번째 페이지라면 홈페이지와 이전 페이지 버튼을 보이지 않게 설정If Label1.Text > 2 Then
Button3.Visible = True
Button4.Visible = True
또 다른
Button1.Visible = 거짓
Button2.Visible = 거짓
Button3.Visible = True
Button4.Visible = True
종료 조건
currentPage = Label1.Text - 1
읽기페이지(현재페이지)
바인딩데이터()
End Sub
'다음 페이지 버튼
Private Sub Button3_Click(ByVal 송신자는 System.Object로, ByVal e는 System.EventArgs로) Button3.Click을 처리합니다.
'현재 페이지가 끝에서 두 번째 페이지인 경우 마지막 페이지와 다음 페이지 버튼을 보이지 않도록 설정If Label1.Text < Label2.Text - 1 Then
Button1.Visible = True
Button2.Visible = True
또 다른
Button1.Visible = True
Button2.Visible = True
Button3.Visible = 거짓
Button4.Visible = 거짓
종료 조건
currentPage = Label1.Text + 1
읽기페이지(현재페이지)
바인딩데이터()
End Sub
'마지막 페이지 버튼Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'현재 페이지를 최대 페이지 수로 설정 currentPage = Label2.Text
읽기페이지(현재페이지)
바인딩데이터()
Button1.Visible = True
Button2.Visible = True
Button3.Visible = 거짓
Button4.Visible = 거짓
서브 끝
End Class
양식 인터페이스는 다음과 같습니다.