index.aspx.vb
来自「《ASP.NET C#程序设计案例教程》」· VB 代码 · 共 92 行
VB
92 行
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic '因为用到了Trim函数,所以导入本空间
Imports nsAddress
Public Class index: Inherits Page
Public myDataGrid As DataGrid
Public lblPage As Label
Public txtKeyword,txtPage As TextBox
Sub Page_Load(Sender As Object, E As EventArgs)
If Not IsPostBack Then
Call myDataBind() '绑定数据
End If
End Sub
'客户单击页码LinkButton触发该事件
Sub lbtn_Click(Sender As Object, E As EventArgs)
Dim arg As String=Sender.CommandName.ToString
Select Case arg
Case "First"
Session("PageIndex") = 0
Case "Prev"
If myDataGrid.CurrentPageIndex>0 Then
Session("PageIndex") -=1
End If
Case "Next"
If myDataGrid.CurrentpageIndex<myDataGrid.PageCount-1 Then
Session("PageIndex") +=1
End If
Case "Last"
Session("PageIndex") = myDataGrid.PageCount-1
End Select
Call myDataBind() '绑定数据
End Sub
'当客户填写页码并单击GO按钮时执行该过程
Sub btnPage_Click(Sender As Object, E As EventArgs)
'下面首先获取客户填写的页码,并处理使其符合要求
Dim intPageIndex As Integer = Convert.ToInt32(txtPage.Text)
If intPageIndex<1 Then
intPageIndex=0 '如果客户填写了小于1的页码,则显示首页
Elseif intPageIndex > myDataGrid.PageCount Then
intPageIndex = myDataGrid.PageCount-1 '如果填写了大于实际页面的数字,则显示末页
Else
intPageIndex = intPageIndex-1 '因为索引从0开始,所以减1
End If
txtPage.Text="" '清空文本框
'下面设定要显示的页码,然后重新绑定数据
Session("PageIndex") = intPageIndex
Call myDataBind() '绑定数据
End Sub
'该过程用于排序
Sub MyDataGrid_Sort(Sender As Object, E As DataGridSortCommandEventArgs)
Session("SortField")=E.SortExpression '将排序字段保存在标签中
myDataBind() '绑定数据
End Sub
'该过程用来查询数据
Sub Enter_Click(Sender As Object, E As EventArgs)
Session("Keyword")=Trim(txtKeyword.Text) '将查询关键词保存在标签中
Session("PageIndex")=0 '查询数据后,原来的页码就有问题了,此时应该显示第0页
myDataBind() '绑定数据
End Sub
'该过程用于绑定数据
Sub myDataBind()
'首先调用方法,返回DataView对象
Dim dbs As New DataBusiness("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("address.mdb"))
Dim dv As DataView=dbs.PreGetUsers()
'下面读取当前页码
Dim intPageIndex As Integer
intPageIndex=Convert.ToInt32(Session("PageIndex"))
'如果发生错误,可能就是因为删除的最后一页最后一行,所以这里进行了错误判断
Dim error_1 As Exception
Try
myDataGrid.CurrentPageIndex = intPageIndex
myDataGrid.DataSource=dv
myDataGrid.DataBind()
Catch error_1
myDataGrid.CurrentPageIndex = intPageIndex-1 '如果发生错误,则令页码减1
Session("PageIndex")= intPageIndex-1 '将改变后的页码保存到Session中
myDataGrid.DataSource=dv
myDataGrid.DataBind()
End try
'显示当前页和总页码
lblPage.Text = (myDataGrid.CurrentPageIndex + 1) & "/" & myDataGrid.PageCount
End Sub
End Class
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?