Text/waterswea
1. プログラム機能: Replyer のページングを実装します。
2. フォーム設計:
1. 新しい ASP.NET Web アプリケーションを作成します。Repeater2 という名前で、保存パスはhttp://192.168.0.1/Repeater2です (注:コンピュータ Web サイトの IP は 192.168.0.1、ホーム ディレクトリは D:web フォルダです) を選択し、[OK] をクリックします。
2. 3 行 1 列のテーブルをフォームに追加し、Repeater コントロールをテーブルの 1 行目に追加し、2 つの Label コントロールをテーブルの 2 行目に追加し、4 つの Button ボタンをテーブルの 3 行目に追加します。テーブル。
3. HTML コード ウィンドウに切り替えて、<asp:Repeater id="Repeater1" runat="server"> と </asp:Repeater> の間に次のコードを追加します
。
<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>
</テーブル>
</ItemTemplate>
3. コード設計:
System.Data.SqlClient をインポートします。
パブリック クラス WebForm1
System.Web.UI.Page
Dim scon を New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123") として
継承します。
SqlDataAdapter としての sDA のディム
データセットとしての Dim ds
Dim currentPage As Integer '現在表示しているページを記録します。 Dim maxPage As Integer '全体で何ページありますか? Const rowCount As Integer = 3 '1 ページに何行ありますか?合計はありますか
' フォーム コード
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
元を例外としてキャッチ
行合計 = 0
End Try
'データがない場合はプロセスを終了If rowSum = 0 then Exit Sub
'閲覧データの総ページ数を計算If rowSum Mod rowCount > 0 then
'余りがある場合は1を足します
maxPage = rowSum rowCount + 1
それ以外
'maxPage = rowSum rowCount を正確に除算します
現在のページ = 1
の場合は終了
'バインドされたデータ プロセスを呼び出します readpage(currentPage)
バインドデータ()
Label2.Text = maxPage
'ホーム ボタンと前ページ ボタンは非表示になりますButton1.Visible = False
Button2.Visible = False
終了の場合
End Sub
'データバインディングプロセスの作成
サブバインドデータ()
リピータ 1.データソース = ds
Replyer1.DataBind()
Label1.Text = 現在のページ
End Sub
'データセットを設定するプロセスを作成します
サブ読み取りページ(ByVal n As Integer)
sDA = New SqlDataAdapter("従業員 ID 順に従業員から従業員 ID、姓を選択", scon)
ds = 新しいデータセット
ds.Clear()
sDA.Fill(ds, (n - 1) * rowCount, rowCount, "従業員")
End Sub
'ホームボタン
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Button1.Click
currentPage = 1
を処理します
'データセットを埋めるプロセスを呼び出します readpage(currentPage)
'データをバインドBindData()
'ホームページと最初のページのボタンを非表示に設定し、次のページと最後のページのボタンを表示します Button1.Visible = False
Button2.Visible = False
Button3.Visible = True
Button4.Visible = True
End Sub
'前ページ ボタン
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Button2.Click を処理します
'現在のページが 2 ページ目の場合、ホームページと前のページのボタンを非表示に設定しますIf Label1.Text > 2 then
Button3.Visible = True
Button4.Visible = True
それ以外
Button1.Visible = False
Button2.Visible = False
Button3.Visible = True
Button4.Visible = True
終了の場合
currentPage = Label1.Text - 1
readpage(現在のページ)
バインドデータ()
End Sub
「次のページ」ボタン
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Button3.Click を処理します
' 現在のページが最後から 2 番目のページの場合、最後のページと次のページのボタンを非表示に設定しますIf Label1.Text < Label2.Text - 1 then
Button1.Visible = True
Button2.Visible = True
それ以外
Button1.Visible = True
Button2.Visible = True
Button3.Visible = False
Button4.Visible = False
終了の場合
currentPage = ラベル1.テキスト + 1
readpage(現在のページ)
バインドデータ()
End Sub
'最終ページボタンPrivate Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Button4.Click を処理します
'現在のページを最大ページ数に設定します currentPage = Label2.Text
readpage(現在のページ)
バインドデータ()
Button1.Visible = True
Button2.Visible = True
Button3.Visible = False
Button4.Visible = False
エンドサブ
End Class
フォームのインターフェイスは次のとおりです。