实现高效分页的方法

 1 None.gif < script runat = server >
 2 None.gifSqlConnection conNorthwind;
 3 None.gif string   strSelect;
 4 None.gif int  intStartIndex;
 5 None.gif int  intEndIndex;
 6 None.gif
 7 None.gif void  Page_Load(Object sender , EventArgs e) 
 8 ExpandedBlockStart.gifContractedBlock.gif dot.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}

24 None.gif
25 None.gif void  BindDataGrid () 
26 ExpandedBlockStart.gifContractedBlock.gif dot.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}

41 None.gif
42 ExpandedBlockStart.gifContractedBlock.gif void  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}

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

余额充值