DataGrid和預存程序結合的分頁,唯讀取當前頁資料

來源:互聯網
上載者:User
datagrid|預存程序|分頁|資料  

<%@ 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
  btnFirst.Text = "首頁"
  btnPrev.Text = "上一頁"
  btnNext.Text = "下一頁"
  btnLast.Text = "末頁"
  conNorthwind = New SqlConnection( "Server=192.168.4.1;UID=sa;PWD=XXXXXX;Database=NorthWind" )
  If Not IsPostBack Then
    ' Get Total Pages
    strSelect = "SELECT COUNT(OrderID) FROM Orders"
    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 = dgrdProducts.PageSize
  dadProducts = New SqlDataAdapter( "OrdersPaged", conNorthwind )
  dadProducts.SelectCommand.CommandType = CommandType.StoredProcedure
  dadProducts.SelectCommand.Parameters.Add( "@PageIndex", intStartIndex )
  dadProducts.SelectCommand.Parameters.Add( "@PageSize ", intEndIndex )
  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.CurrentPageIndex = e.NewPageIndex
  BindDataGrid
End Sub
Sub PagerButtonClick(ByVal sender As Object, ByVal e As EventArgs)
  Dim arg As String = sender.CommandArgument
  Select Case arg
      Case "next"
        If (dgrdProducts.CurrentPageIndex < (dgrdProducts.PageCount - 1)) Then
           dgrdProducts.CurrentPageIndex += 1
        End If
      Case "prev"
        If (dgrdProducts.CurrentPageIndex > 0) Then
           dgrdProducts.CurrentPageIndex -= 1
        End If
      Case "last"
           dgrdProducts.CurrentPageIndex = (dgrdProducts.PageCount - 1)
      Case Else
        'page number
        dgrdProducts.CurrentPageIndex = System.Convert.ToInt32(arg)
  End Select
  intStartIndex=dgrdProducts.CurrentPageIndex
  BindDataGrid
End Sub
</Script>

<html>
<head><title>Paging.aspx</title></head>
<body>
<form Runat="Server">

<asp:DataGrid Runat="Server"
  ID="dgrdProducts"
  showheader="false"
  AllowPaging="True"
  AllowCustomPaging="True"
  PageSize="10"
  OnPageIndexChanged="dgrdProducts_PageIndexChanged"
  PagerStyle-Mode="NumericPages"
  AlternatingItemStyle-BackColor="#eeaaee"
  HeaderStyle-BackColor="#aaFFdd"
  Font-Size="10pt"
  Font-Name="Verdana"
  CellSpacing="0"
  CellPadding="3"
  GridLines="Both"
  BorderWidth="1"
  BorderColor="black"
  PagerStyle-HorizontalAlign="Right">
  <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
</asp:datagrid>
<asp:linkbutton id="btnFirst" runat="server" Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="0"></asp:linkbutton> 
<asp:linkbutton id="btnPrev" runat="server" Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="prev"></asp:linkbutton> 
<asp:linkbutton id="btnNext" runat="server" Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="next"></asp:linkbutton> 
<asp:linkbutton id="btnLast" runat="server" Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="last"></asp:linkbutton>
</form>
</html>
下面是預存程序:
CREATE PROCEDURE OrdersPaged
(
  &nb



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。