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 + -
显示快捷键?