实现高效分页的方法

本文介绍了一种在ASP.NET中实现数据分页的方法,通过使用SqlConnection连接到Northwind数据库,并利用SqlCommand对象进行SQL查询来获取指定范围内的产品数据。此外,还展示了如何通过DataGrid控件展示这些数据,并实现翻页功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1None.gif<script runat=server>
 2None.gifSqlConnection conNorthwind;
 3None.gifstring  strSelect;
 4None.gifint intStartIndex;
 5None.gifint intEndIndex;
 6None.gif
 7None.gifvoid Page_Load(Object sender , EventArgs e) 
 8ExpandedBlockStart.gifContractedBlock.gifdot.gif{
 9InBlock.gif    SqlCommand cmdSelect;
10InBlock.gif
11InBlock.gif    conNorthwind = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Northwind" );
12InBlock.gif    
13InBlock.gif    if (! IsPostBack ) 
14ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
15InBlock.gif        // Get  Total Pages
16InBlock.gif        strSelect = "Select Count(*) From Products";
17InBlock.gif        cmdSelect = new SqlCommand( strSelect, conNorthwind );
18InBlock.gif        conNorthwind.Open();
19InBlock.gif        dgrdProducts.VirtualItemCount = ( (int)cmdSelect.ExecuteScalar() / dgrdProducts.PageSize );
20InBlock.gif        conNorthwind.Close();
21InBlock.gif        BindDataGrid();
22ExpandedSubBlockEnd.gif    }

23ExpandedBlockEnd.gif}

24None.gif
25None.gifvoid BindDataGrid () 
26ExpandedBlockStart.gifContractedBlock.gifdot.gif{
27InBlock.gif    SqlDataAdapter dadProducts;
28InBlock.gif    DataSet dstProducts;
29InBlock.gif
30InBlock.gif    intEndIndex = intStartIndex + dgrdProducts.PageSize;
31InBlock.gif    strSelect = "Select * From Products Where ProductID > @startIndex And ProductID <= @endIndex Order By ProductID";
32InBlock.gif    dadProducts = new SqlDataAdapter( strSelect, conNorthwind );
33InBlock.gif    dadProducts.SelectCommand.Parameters.Add( "@startIndex", intStartIndex );
34InBlock.gif    dadProducts.SelectCommand.Parameters.Add( "@endIndex", intEndIndex );
35InBlock.gif    dstProducts = new DataSet();
36InBlock.gif    dadProducts.Fill( dstProducts );
37InBlock.gif
38InBlock.gif    dgrdProducts.DataSource = dstProducts;
39InBlock.gif    dgrdProducts.DataBind();
40ExpandedBlockEnd.gif}

41None.gif
42ExpandedBlockStart.gifContractedBlock.gifvoid dgrdProducts_PageIndexChanged( object s, DataGridPageChangedEventArgs e ) dot.gif{
43InBlock.gif    intStartIndex = ( e.NewPageIndex * dgrdProducts.PageSize );
44InBlock.gif    dgrdProducts.CurrentPageIndex = e.NewPageIndex;
45InBlock.gif    BindDataGrid();
46ExpandedBlockEnd.gif}

47None.gif
48None.gif</Script>
49None.gif
50None.gif<html>
51None.gif<head><title>DataGridCustomPaging.aspx</title></head>
52None.gif<body>
53None.gif<form Runat="Server">
54None.gif
55None.gif<asp:DataGrid
56None.gif  ID="dgrdProducts"
57None.gif  AllowPaging="True"
58None.gif  AllowCustomPaging="True"
59None.gif  PageSize="3"
60None.gif  OnPageIndexChanged="dgrdProducts_PageIndexChanged"
61None.gif  PagerStyle-Mode="NumericPages"
62None.gif  CellPadding="3"
63None.gif  Runat="Server" />
64None.gif
65None.gif</form>
66None.gif</body>
67None.gif</html>
68None.gif

使用条件:要有一个主键列(ProductID)。

转载于:https://www.cnblogs.com/CStep/archive/2006/08/18/480195.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值