大家一起来 讨论 这个分页代码 写的怎么样 有什么缺点
<%@ Page Language="VB" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Data" %>
<script runat="server">
Dim conNorthwind As SqlConnection
Dim strSelect As String
Dim intStartIndex As Integer
Dim intEndIndex As Integer
Sub Page_Load
Dim cmdSelect As SqlCommand
conNorthwind = New SqlConnection( "Server=localhost;UID=sa;PWD=;Database=Northwind" )
' 设置链接到SQL SEVER2000数据库默认具备的数据库NORTHWIND的链接
If Not IsPostBack Then
' Get Total Pages
strSelect = "Select Count(*) From Products"
cmdSelect = New SqlCommand( strSelect, conNorthwind )
conNorthwind.Open()
dgrdProducts.VirtualItemCount = ( cmdSelect.ExecuteScalar() / dgrdProducts.PageSize )
conNorthwind.Close()
BindDataGrid
End If
End Sub
Sub BindDataGrid
Dim dadProducts As SqlDataAdapter
Dim dstProducts As DataSet
intEndIndex = intStartIndex + dgrdProducts.PageSize
'根据要显示页面其起始的PRODUCT值+其页面条数值.获得其结束PRODUCTID值
strSelect = "Select * From Products Where ProductID > @startIndex " _
& "And ProductID <= @endIndex Order By ProductID"
dadProducts = New SqlDataAdapter( strSelect, conNorthwind )
dadProducts.SelectCommand.Parameters.Add( "@startIndex", intStartIndex )
'这里设置该页显示的新闻起始的新闻RPODUCTID
dadProducts.SelectCommand.Parameters.Add( "@endIndex", intEndIndex )
'这里设置该页显示的新闻结束的PRODUCTID值
dstProducts = New DataSet
dadProducts.Fill( dstProducts )
dgrdProducts.DataSource = dstProducts
dgrdProducts.DataBind()
End Sub
Sub dgrdProducts_PageIndexChanged( s As Object, e As DataGridPageChangedEventArgs )
intStartIndex = ( e.NewPageIndex * dgrdProducts.PageSize )
'根据页选择的页面.计算出该页起始productid的值.
dgrdProducts.CurrentPageIndex = e.NewPageIndex
BindDataGrid
End Sub
</script>
<html>
<head>
<title>DataGridCustomPaging.aspx</title>
</head>
<body>
<form runat="Server">
<asp:DataGrid id="dgrdProducts" Runat="Server" CellPadding="3" PagerStyle-Mode="NumericPages" OnPageIndexChanged="dgrdProducts_PageIndexChanged" PageSize="3" AllowCustomPaging="True" AllowPaging="True"></asp:DataGrid>
<!-- pagestyle-mode设置分页显示的方式,这里我们将其设置为数字显示, -->
</form>
</body>
</html>