Text/waterswea
1. Fonction du programme : implémenter la pagination pour Repeater
2. Conception de formulaire :
1. Créez une nouvelle application Web ASP.NET, nommée Repeater2, et le chemin de sauvegarde est http://192.168.0.1/Repeater2 (Remarque : sur mon ordinateur L'adresse IP du site Web est 192.168.0.1 et le répertoire personnel est le dossier D:web) et cliquez sur OK.
2. Ajoutez un tableau avec trois lignes et une colonne au formulaire, ajoutez un contrôle Repeater à la première ligne du tableau, ajoutez deux contrôles Label à la deuxième ligne du tableau et ajoutez quatre boutons Button à la troisième ligne du tableau. tableau.
3. Basculez vers la fenêtre de code HTML et ajoutez le code suivant entre <asp:Repeater id="Repeater1" runat="server"> et </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. Conception du code :
importe System.Data.SqlClient
WebForm1 de classe publique
Hérite de System.Web.UI.Page
Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")
Dim sDA en tant que SqlDataAdapter
Dim ds comme DataSet
Dim currentPage As Integer 'Enregistre la page sur laquelle vous vous trouvez actuellement. Dim maxPage As Integer 'Combien de pages y a-t-il au total ? Const rowCount As Integer = 3 'Combien de lignes y a-t-il sur une page ? y a-t-il au total
' Code du formulaire
omitPrivate Sub Page_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Gère MyBase.Load
sinon Page.IsPostBack Then
sDA = New SqlDataAdapter("sélectionnez l'ID employé, le nom des employés, triés par ID employé", scon)
ds = Nouveau jeu de données
Essayer
sDA.Fill(ds, "employés")
'Obtenir le nombre total de lignes rowSum = ds.Tables(0).Rows.Count
Attraper un ex comme exception
somme de lignes = 0
End Try
'S'il n'y a pas de données, quittez le processusSi rowSum = 0 Then Exit Sub
'Calculer le nombre total de pages de données de navigationSi rowSum Mod rowCount > 0 Then
'S'il y a un reste, ajoutez 1
maxPage = somme de lignes nombre de lignes + 1
Autre
'Diviser exactement maxPage = rowSum rowCount
Fin Si
PageActuelle = 1
'Appeler le processus de données liées readpage(currentPage)
LierDonnées()
Étiquette2.Texte = maxPage
'Les boutons d'accueil et de la page précédente sont invisibleButton1.Visible = False
Bouton2.Visible = Faux
Fin si
End Sub
'Créer un processus de liaison de données
Sous-liaisonDonnées()
Répéteur1.DataSource = ds
Répéteur1.DataBind()
Label1.Text = Page actuelle
End Sub
'Créer un processus pour remplir l'ensemble de données
Sous-page de lecture (ByVal n As Integer)
sDA = New SqlDataAdapter("sélectionnez l'ID employé, le nom des employés, triés par ID employé", scon)
ds = Nouveau jeu de données
ds.Clair()
sDA.Fill(ds, (n - 1) * rowCount, rowCount, "employés")
Fin du sous
-bouton Accueil
Sous-bouton privé Button1_Click (expéditeur ByVal en tant que System.Object, ByVal et en tant que System.EventArgs) gère Button1.Click
currentPage = 1
'Appelle le processus de remplissage de l'ensemble de données readpage(currentPage)
'Lier dataBindData()
'Définissez les boutons de la page d'accueil et de la première page pour qu'ils soient invisibles et affichez les boutons de la page suivante et de la dernière page Button1.Visible = False
Bouton2.Visible = Faux
Button3.Visible = Vrai
Button4.Visible = True
End Sub
'Bouton de la page précédente
Sous-bouton privé Button2_Click (expéditeur ByVal en tant que System.Object, ByVal et en tant que System.EventArgs) gère Button2.Click
'Si la page actuelle est la deuxième page, définissez les boutons de la page d'accueil et de la page précédente pour qu'ils soient invisibles. If Label1.Text > 2 Then
Button3.Visible = Vrai
Button4.Visible = Vrai
Autre
Bouton1.Visible = Faux
Bouton2.Visible = Faux
Button3.Visible = Vrai
Button4.Visible = Vrai
Fin si
Pageactuelle = Étiquette1.Texte - 1
lire la page (page actuelle)
LierDonnées()
Fin du sous
-bouton « Page suivante »
Sous-bouton privé Button3_Click (expéditeur ByVal en tant que System.Object, ByVal et en tant que System.EventArgs) gère Button3.Click
'Si la page actuelle est l'avant-dernière page, définissez les boutons de la dernière page et de la page suivante pour qu'ils soient invisibles. If Label1.Text < Label2.Text - 1 Then
Bouton1.Visible = Vrai
Button2.Visible = Vrai
Autre
Bouton1.Visible = Vrai
Button2.Visible = Vrai
Button3.Visible = Faux
Bouton4.Visible = Faux
Fin si
Pageactuelle = Étiquette1.Texte + 1
lire la page (page actuelle)
LierDonnées()
End Sub
'Bouton de dernière pagePrivate Sub Button4_Click (ByVal expéditeur As System.Object, ByVal e As System.EventArgs) Poignées Button4.Click
'Définit la page actuelle sur le nombre maximum de pages currentPage = Label2.Text
lire la page (page actuelle)
LierDonnées()
Button1.Visible = Vrai
Button2.Visible = Vrai
Bouton3.Visible = Faux
Bouton4.Visible = Faux
Fin du sous-marin
interface du formulaire
de fin de classe
est la suivante :