一個功能齊全的DataGrid分頁例子_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:教你在asp.net中動態(tài)變更CSS
      在asp.net中,有的時候要動態(tài)變換CSS,比如有的時候做個性化頁面,可以這樣做。 以下為引用的內(nèi)容:   <head>   <link id="MyStyleS

      以下為引用的內(nèi)容:

      C#版本

      DataGridPaging.aspx

      <%@ Page language="c#" EnableViewState = "true" Codebehind="DataGridPaging.aspx.cs"
      AutoEventWireup="false" Inherits="eMeng.Exam.DataGridPaging.DataGridPaging" %>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
      <HEAD>
      <meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
      <meta content="JavaScript" name="vs_defaultClientScript">
      <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
      </HEAD>
      <body MS_POSITIONING="GridLayout">
      <form id="Form1" runat="server">
      <asp:datagrid id="MyDataGrid" runat="server" AutoGenerateColumns="False"
      HorizontalAlign="Center" AlternatingItemStyle-BackColor="#eeeeee"
      HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="Verdana"
      CellSpacing="0" CellPadding="3" GridLines="Both" BorderWidth="1"
      BorderColor="black" OnPageIndexChanged="MyDataGrid_Page" PagerStyle-HorizontalAlign="Right"
      PagerStyle-Mode="NumericPages" PageSize="5" AllowPaging="True">
       <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
       <HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Center"></HeaderStyle>
       <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
       <Columns>
       <asp:BoundColumn HeaderText="標(biāo)題" DataField="Title" HeaderStyle-Width="480px">
       </asp:BoundColumn>
       <asp:BoundColumn HeaderText="發(fā)表日期" DataField="CreateDate" DataFormatString="{0:yyyy-MM-dd hh:mm:ss}">
       </asp:BoundColumn>
       </Columns>
      </asp:datagrid>
      <p style="FONT-SIZE:9pt" align="center">
       <asp:label id="lblPageCount" runat="server"></asp:label>&nbsp;
       <asp:label id="lblCurrentIndex" runat="server"></asp:label>
       <asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
        Font-size="8pt" ForeColor="navy" CommandArgument="0"></asp:linkbutton>&nbsp;
       <asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
        Font-size="8pt" ForeColor="navy" CommandArgument="prev"></asp:linkbutton>&nbsp;
       <asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
        Font-size="8pt" ForeColor="navy" CommandArgument="next"></asp:linkbutton>&nbsp;
       <asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
        Font-size="8pt" ForeColor="navy" CommandArgument="last"></asp:linkbutton>
      </p>
      </form>
      </body>
      </HTML>

      DataGridPaging.aspx.cs

      using System;
      using System.Collections;
      using System.ComponentModel;
      using System.Data;
      using System.Data.OleDb;
      using System.Drawing;
      using System.Web;
      using System.Web.SessionState;
      using System.Web.UI;
      using System.Web.UI.WebControls;
      using System.Web.UI.HtmlControls;

      namespace eMeng.Exam.DataGridPaging
      {
      /// <summary>
      /// DataGridPaging 的摘要說明。
      /// </summary>
      public class DataGridPaging : System.Web.UI.Page
      {
      protected System.Web.UI.WebControls.DataGrid MyDataGrid;
      protected System.Web.UI.WebControls.Label lblPageCount;
      protected System.Web.UI.WebControls.Label lblCurrentIndex;
      protected System.Web.UI.WebControls.LinkButton btnFirst;
      protected System.Web.UI.WebControls.LinkButton btnPrev;
      protected System.Web.UI.WebControls.LinkButton btnNext;
      protected System.Web.UI.WebControls.LinkButton btnLast;
      private OleDbConnection cn = new OleDbConnection();

      private void Page_Load(object sender, System.EventArgs e)
      {
       // 在此處放置用戶代碼以初始化頁面
       btnFirst.Text = "最首頁";
       btnPrev.Text = "前一頁";
       btnNext.Text = "下一頁";
       btnLast.Text = "最后頁";
       OpenDatabase();
       BindGrid();
      }
      private void OpenDatabase()
      {
      cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("xxxx.mdb");
      cn.Open();
      }
      private void ShowStats()
      {
      lblCurrentIndex.Text = "第 " (MyDataGrid.CurrentPageIndex 1).ToString() " 頁";
      lblPageCount.Text = "總共 " MyDataGrid.PageCount.ToString() " 頁";
      }

      public void PagerButtonClick(object sender, EventArgs e)
      {
      string arg = ((LinkButton)sender).CommandArgument.ToString();
      switch(arg)
      {
       case "next":
        if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
        {
        MyDataGrid.CurrentPageIndex = 1;
        }
        break;
       case "prev":
        if (MyDataGrid.CurrentPageIndex > 0)
        {
        MyDataGrid.CurrentPageIndex -= 1;
        }
        break;
       case "last":
        MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
        break;
       default:
        MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg);
        break;
      }
      BindGrid();
      ShowStats();
      }
      public void BindGrid()
      {
      OleDbConnection myConnection = cn;
      DataSet ds = new DataSet();
      OleDbDataAdapter adapter = new OleDbDataAdapter("Select Title,CreateDate from Document", myConnection);
      adapter.Fill(ds, "Document");
      MyDataGrid.DataSource = ds.Tables["Document"].DefaultView;
      MyDataGrid.DataBind();
      ShowStats();
      }
      public void MyDataGrid_Page(object sender, DataGridPageChangedEventArgs e)
      {
      int startIndex ;
      startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize;
      MyDataGrid.CurrentPageIndex = e.NewPageIndex;
      BindGrid();
      ShowStats();
      }

      #region Web Form Designer generated code
      override protected void OnInit(EventArgs e)
      {
      //
      // CODEGEN:該調(diào)用是 ASP.NET Web 窗體設(shè)計器所必需的。
      //
      InitializeComponent();
      base.OnInit(e);
      }

      /// <summary>
      /// 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改
      /// 此方法的內(nèi)容。
      /// </summary>
      private void InitializeComponent()
      {
      this.Load = new System.EventHandler(this.Page_Load);

      }
      #endregion
      }
      }


      VB.NET版本

      DataGridPaging.aspx

      <%@ Page Language="vb" AutoEventWireup="false" Codebehind="DataGridPaging.aspx.vb" Inherits="DataGridPaging"%>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
       <HEAD>
        <meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
       </HEAD>
       <body MS_POSITIONING="GridLayout">
        <form id="Form1" runat="server">
         <asp:datagrid id="MyDataGrid" runat="server" AlternatingItemStyle-BackColor="#eeeeee"
        HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="Verdana" CellSpacing="0"
         CellPadding="3" GridLines="Both" BorderWidth="1" BorderColor="black"
        OnPageIndexChanged="MyDataGrid_Page" PagerStyle-HorizontalAlign="Right"
        PagerStyle-Mode="NumericPages" PageSize="5" AllowPaging="True">
          <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
          <HeaderStyle BackColor="#AAAADD"></HeaderStyle>
          <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
         </asp:datagrid>
         <p style="font-size:9pt">
          <asp:label id="lblPageCount" runat="server"></asp:label>&nbsp;
          <asp:label id="lblCurrentIndex" runat="server"></asp:label>
          <asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server"
        Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="0">
        </asp:linkbutton>&nbsp;
          <asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server"
        Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="prev">
        </asp:linkbutton>&nbsp;
          <asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server"
        Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="next">
        </asp:linkbutton>&nbsp;
          <asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server"
        Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="last">
        </asp:linkbutton>
         </p>
        </form>
       </body>
      </HTML>

      DataGridPaging.aspx.vb

      Imports System.Data.SqlClient
      Imports System.Data
      Imports System.Web.UI

      Public Class DataGridPaging
       Inherits System.Web.UI.Page

       Protected WithEvents MyDataGrid As System.Web.UI.WebControls.DataGrid
       Protected WithEvents btnFirst As System.Web.UI.WebControls.LinkButton
       Protected WithEvents btnPrev As System.Web.UI.WebControls.LinkButton
       Protected WithEvents btnNext As System.Web.UI.WebControls.LinkButton
       Protected WithEvents btnLast As System.Web.UI.WebControls.LinkButton
       Protected WithEvents lblCurrentIndex As System.Web.UI.WebControls.Label
       Protected WithEvents lblPageCount As System.Web.UI.WebControls.Label
       Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid

      #Region " Web Form Designer Generated Code "

       'This call is required by the Web Form Designer.
       <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

       End Sub

       Private Sub Page_Init(ByVal sender As System.Object,_
        ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
       End Sub

      #End Region

       Private Sub Page_Load(ByVal sender As System.Object,_
        ByVal e As System.EventArgs) Handles MyBase.Load
        btnFirst.Text = "最首頁"
        btnPrev.Text = "前一頁"
        btnNext.Text = "下一頁"
        btnLast.Text = "最后頁"
        OpenDatabase()
        BindGrid()
       End Sub


       Sub MyDataGrid_Page(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
        Dim startIndex As Integer
        startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize
        MyDataGrid.CurrentPageIndex = e.NewPageIndex
        BindGrid()
        ShowStats()
       End Sub

       Sub BindGrid()
        Dim myConnection As SqlConnection = cn
        Dim ds As DataSet = New DataSet()
        Dim adapter As SqlDataAdapter = New SqlDataAdapter("Select * from Orders", myConnection)
        adapter.Fill(ds, "Orders")
        MyDataGrid.DataSource = ds.Tables("Orders").DefaultView
        MyDataGrid.DataBind()
        ShowStats()

       End Sub

       Sub PagerButtonClick(ByVal sender As Object, ByVal e As EventArgs)
        'used by external paging UI
        Dim arg As String = sender.CommandArgument

        Select Case arg
         Case "next"
          If (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1)) Then
           MyDataGrid.CurrentPageIndex = 1
          End If
         Case "prev"
          If (MyDataGrid.CurrentPageIndex > 0) Then
           MyDataGrid.CurrentPageIndex -= 1
          End If
         Case "last"
          MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1)
         Case Else
          'page number
          MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg)
        End Select
        BindGrid()
        ShowStats()
       End Sub

       Sub ShowStats()
        lblCurrentIndex.Text = "第 " (MyDataGrid.CurrentPageIndex 1).ToString() " 頁"
        lblPageCount.Text = "總共 " MyDataGrid.PageCount.ToString() " 頁"
       End Sub

      Public cn As New SqlClient.SqlConnection()
       Public Sub OpenDatabase()
        cn.ConnectionString = "Server=.;Database=NorthWind;User Id=sa;Password=;"
        cn.Open()
       End Sub
      End Class

      分享:ASP.NET中的doPostBack腳本函數(shù)實例
      今天來說說當(dāng)ASP.NET中的doPostBack腳本函數(shù)的應(yīng)用,ASPX頁面有包含asp:LinkButton或者帶有AutoPostBack屬性且其值為true的服務(wù)器控件時,ASP.NET會自動為頁面生成下面的腳本:

      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關(guān).Net教程