1<script runat=server>
2SqlConnection conNorthwind;
3string strSelect;
4int intStartIndex;
5int intEndIndex;
6
7void Page_Load(Object sender , EventArgs e)
8{
9 SqlCommand cmdSelect;
10
11 conNorthwind = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Northwind" );
12
13 if (! IsPostBack )
14 {
15 // Get Total Pages
16 strSelect = "Select Count(*) From Products";
17 cmdSelect = new SqlCommand( strSelect, conNorthwind );
18 conNorthwind.Open();
19 dgrdProducts.VirtualItemCount = ( (int)cmdSelect.ExecuteScalar() / dgrdProducts.PageSize );
20 conNorthwind.Close();
21 BindDataGrid();
22 }
23}
24
25void BindDataGrid ()
26{
27 SqlDataAdapter dadProducts;
28 DataSet dstProducts;
29
30 intEndIndex = intStartIndex + dgrdProducts.PageSize;
31 strSelect = "Select * From Products Where ProductID > @startIndex And ProductID <= @endIndex Order By ProductID";
32 dadProducts = new SqlDataAdapter( strSelect, conNorthwind );
33 dadProducts.SelectCommand.Parameters.Add( "@startIndex", intStartIndex );
34 dadProducts.SelectCommand.Parameters.Add( "@endIndex", intEndIndex );
35 dstProducts = new DataSet();
36 dadProducts.Fill( dstProducts );
37
38 dgrdProducts.DataSource = dstProducts;
39 dgrdProducts.DataBind();
40}
41
42void dgrdProducts_PageIndexChanged( object s, DataGridPageChangedEventArgs e ) {
43 intStartIndex = ( e.NewPageIndex * dgrdProducts.PageSize );
44 dgrdProducts.CurrentPageIndex = e.NewPageIndex;
45 BindDataGrid();
46}
47
48</Script>
49
50<html>
51<head><title>DataGridCustomPaging.aspx</title></head>
52<body>
53<form Runat="Server">
54
55<asp:DataGrid
56 ID="dgrdProducts"
57 AllowPaging="True"
58 AllowCustomPaging="True"
59 PageSize="3"
60 OnPageIndexChanged="dgrdProducts_PageIndexChanged"
61 PagerStyle-Mode="NumericPages"
62 CellPadding="3"
63 Runat="Server" />
64
65</form>
66</body>
67</html>
68
2SqlConnection conNorthwind;
3string strSelect;
4int intStartIndex;
5int intEndIndex;
6
7void Page_Load(Object sender , EventArgs e)
8{
9 SqlCommand cmdSelect;
10
11 conNorthwind = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Northwind" );
12
13 if (! IsPostBack )
14 {
15 // Get Total Pages
16 strSelect = "Select Count(*) From Products";
17 cmdSelect = new SqlCommand( strSelect, conNorthwind );
18 conNorthwind.Open();
19 dgrdProducts.VirtualItemCount = ( (int)cmdSelect.ExecuteScalar() / dgrdProducts.PageSize );
20 conNorthwind.Close();
21 BindDataGrid();
22 }
23}
24
25void BindDataGrid ()
26{
27 SqlDataAdapter dadProducts;
28 DataSet dstProducts;
29
30 intEndIndex = intStartIndex + dgrdProducts.PageSize;
31 strSelect = "Select * From Products Where ProductID > @startIndex And ProductID <= @endIndex Order By ProductID";
32 dadProducts = new SqlDataAdapter( strSelect, conNorthwind );
33 dadProducts.SelectCommand.Parameters.Add( "@startIndex", intStartIndex );
34 dadProducts.SelectCommand.Parameters.Add( "@endIndex", intEndIndex );
35 dstProducts = new DataSet();
36 dadProducts.Fill( dstProducts );
37
38 dgrdProducts.DataSource = dstProducts;
39 dgrdProducts.DataBind();
40}
41
42void dgrdProducts_PageIndexChanged( object s, DataGridPageChangedEventArgs e ) {
43 intStartIndex = ( e.NewPageIndex * dgrdProducts.PageSize );
44 dgrdProducts.CurrentPageIndex = e.NewPageIndex;
45 BindDataGrid();
46}
47
48</Script>
49
50<html>
51<head><title>DataGridCustomPaging.aspx</title></head>
52<body>
53<form Runat="Server">
54
55<asp:DataGrid
56 ID="dgrdProducts"
57 AllowPaging="True"
58 AllowCustomPaging="True"
59 PageSize="3"
60 OnPageIndexChanged="dgrdProducts_PageIndexChanged"
61 PagerStyle-Mode="NumericPages"
62 CellPadding="3"
63 Runat="Server" />
64
65</form>
66</body>
67</html>
68
使用条件:要有一个主键列(ProductID)。