📄 webform1.aspx.vb
字号:
Public Class WebForm1
Inherits System.Web.UI.Page
Private CurrentPage As Integer
Protected WithEvents cmdNext As System.Data.SqlClient.SqlCommand
Protected WithEvents cmdPrevious As System.Data.SqlClient.SqlCommand
Protected WithEvents btnNext As System.Web.UI.WebControls.LinkButton
Protected WithEvents btnPrevious As System.Web.UI.WebControls.LinkButton
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Protected WithEvents SqlConnection1 As System.Data.SqlClient.SqlConnection
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection()
Me.cmdNext = New System.Data.SqlClient.SqlCommand()
Me.cmdPrevious = New System.Data.SqlClient.SqlCommand()
'
'SqlConnection1
'
Me.SqlConnection1.ConnectionString = "data source=ylm;initial catalog=Northwind;integrated security=SSPI;persist securi" & _
"ty info=False;workstation id=YLM;packet size=4096"
'
'cmdNext
'
Me.cmdNext.CommandText = "SELECT TOP 10 CustomerID, CompanyName, City FROM Customers WHERE (CustomerID > @c" & _
"ustomerid) ORDER BY CustomerID"
Me.cmdNext.Connection = Me.SqlConnection1
Me.cmdNext.Parameters.Add(New System.Data.SqlClient.SqlParameter("@customerid", System.Data.SqlDbType.NVarChar, 5, "CustomerID"))
'
'cmdPrevious
'
Me.cmdPrevious.CommandText = "SELECT TOP 10 CustomerID, CompanyName, City FROM Customers WHERE (CustomerID >= @" & _
"customerid) ORDER BY CustomerID"
Me.cmdPrevious.Connection = Me.SqlConnection1
Me.cmdPrevious.Parameters.Add(New System.Data.SqlClient.SqlParameter("@customerid", System.Data.SqlDbType.NVarChar, 5, "CustomerID"))
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
If Not Page.IsPostBack Then
cmdNext.Parameters("@customerid").Value = ""
CurrentPage = 0
FillGrid(cmdNext)
'初始化页
End If
End Sub
Private Sub FillGrid(ByVal currentSqlCommand As SqlClient.SqlCommand)
Dim dr As SqlClient.SqlDataReader
SqlConnection1.Open()
dr = currentSqlCommand.ExecuteReader()
DataGrid1.DataSource = dr
DataGrid1.DataBind()
dr.Close()
SqlConnection1.Close()
ViewState("CurrentPage") = CurrentPage
ViewState(CurrentPage.ToString) = DataGrid1.Items(0).Cells(0).Text
'向视图状态中存储页码、当前页第一行的CustomerID列的值
If DataGrid1.Items.Count < DataGrid1.PageSize Then
btnNext.Enabled = False
End If
'如果网格中的记录不足设置的页大小(10)条则说明没有下一页了
End Sub
Private Sub btnNext_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles btnNext.Click
CurrentPage = CType(ViewState("CurrentPage"), Integer)
'得到当前页码
CurrentPage += 1
'页码加1
Dim lastid As String = DataGrid1.Items(9).Cells(0).Text
'从网格中获得最后一行CustomerID列的值
cmdNext.Parameters("@customerid").Value = lastid
'设置@customerid参数的值
FillGrid(cmdNext)
'调用FillGrid方法使用cmdNext命令获得的记录填充网格
End Sub
Private Sub btnPrevious_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles btnPrevious.Click
btnNext.Enabled = True
CurrentPage = CType(ViewState("CurrentPage"), Integer)
CurrentPage -= 1
If CurrentPage >= 0 Then
Dim firstid As String
firstid = CType(ViewState(CurrentPage.ToString), String)
cmdPrevious.Parameters("@customerid").Value = firstid
FillGrid(cmdPrevious)
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -