zoukankan      html  css  js  c++  java
  • 用asp.net轻松打造功能完备的分页技术!!!!

    用过asp开发过web程序的人都知道,分页让asp程序员是一件非常头痛的事,我在这就来说说用asp.net轻松打造的分页技术.

    第一步我们在vs.net新建项目,这些我不说了,你自己搞定吧,我在这里主要贴出重要的代码.

    1.webform1.aspx

    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="page.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
      <HEAD>
      <title>WebForm1</title>
      <meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
      <meta content="C#" 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" method="post" runat="server">
       <table align="center">
        <tr>
         <td style="HEIGHT: 104px" colspan=2><asp:datagrid id="DataGrid1" runat="server" PageSize="5" Font-Size="8pt" Font-Names="Verdana" BorderWidth="1px" BackColor="#FFE0C0" BorderColor="#FFC080" HorizontalAlign="Center" CellPadding="3" AllowPaging="True" Height="152px" Width="700px">
    <AlternatingItemStyle BackColor="Linen">
    </AlternatingItemStyle>

    <ItemStyle VerticalAlign="Bottom">
    </ItemStyle>

    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Bottom" BackColor="#FF8000">
    </HeaderStyle>

    <FooterStyle HorizontalAlign="Justify" BackColor="White">
    </FooterStyle>

    <PagerStyle HorizontalAlign="Right" ForeColor="Red" Mode="NumericPages">
    </PagerStyle>
          </asp:datagrid></td>
        </tr>
        <tr align="center">
         <td align=left><font size=2>一共</font>&nbsp;<asp:Label ID="lblallcount" Runat=server Font-size="8pt" ForeColor="#0000ff" font-names="verdana"></asp:Label>&nbsp;<font size=2>记录</font>
             <font size="2">共</font>&nbsp;<asp:label id="lblpagecount" runat="server" Font-Size="8pt" ForeColor="#0000ff" Font-Names="Verdana"></asp:label>&nbsp;<font size="2">页</font>
          <font size="2">第</font>&nbsp;<asp:label id="lblcurrentindex" runat="server" Font-Size="8pt" ForeColor="#0000ff" Font-Names="Verdana"></asp:label>&nbsp;<font size="2">页</font></td>
          <td align=right><asp:linkbutton id="first" runat="server" font-size="8pt" ForeColor="#3300ff" CommandArgument="first" Font-Names="Verdana"></asp:linkbutton>
          <asp:linkbutton id="prev" Font-Size="8pt" ForeColor="#3300ff" CommandArgument="prev" Runat="server" Font-Names="Verdana"></asp:linkbutton>
          <asp:linkbutton id="next" Font-Size="8pt" ForeColor="#3300ff" CommandArgument="next" Runat="server" Font-Names="Verdana"></asp:linkbutton>
          <asp:linkbutton id="last" Font-Size="8pt" ForeColor="#3300ff" CommandArgument="last" Runat="server" Font-Names="Verdana"></asp:linkbutton>
          <font size="2">跳转到第</font><asp:TextBox ID="to" Runat="server" Columns="1" /><font size="2">页</font><asp:Button ID="go" Text="GO" Runat="server" BackColor="WhiteSmoke" Font-Names="Verdana"/>
         </td>
        </tr>
       </table>
      </form>
    </body>
    </HTML>


    2.webform1.cs

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

    namespace page
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
      protected System.Web.UI.WebControls.Label lblpagecount;
      protected System.Web.UI.WebControls.Label lblcurrentindex;
      protected System.Web.UI.WebControls.LinkButton first;
      protected System.Web.UI.WebControls.LinkButton prev;
      protected System.Web.UI.WebControls.LinkButton next;
      protected System.Web.UI.WebControls.DataGrid DataGrid1;
      protected System.Web.UI.WebControls.TextBox to;
      protected System.Web.UI.WebControls.Button go;
      protected System.Web.UI.WebControls.Label lblallcount;
      protected System.Web.UI.WebControls.LinkButton last;

      void Page_Load(object sender, System.EventArgs e)
      {
       // 在此处放置用户代码以初始化页面
       first.Text="最首页";
       prev.Text="前一页";
       next.Text="下一页";
       last.Text="最后页";
       if(!IsPostBack)
       {
        BindGrid();
       }
      }

      #region Web Form Designer generated code
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }
     
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {   
       this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.Page_Changed);
       this.first.Click += new System.EventHandler(this.btnClick);
       this.prev.Click += new System.EventHandler(this.btnClick);
       this.next.Click += new System.EventHandler(this.btnClick);
       this.last.Click += new System.EventHandler(this.btnClick);
       this.go.Click += new System.EventHandler(this.goClick);
       this.Load += new System.EventHandler(this.Page_Load);

      }
      #endregion

      void Page_Changed(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
      {
       DataGrid1.CurrentPageIndex=e.NewPageIndex;
       BindGrid();  
      }
      void BindGrid()
      {
       SqlConnection cn=new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=");
       cn.Open();
       SqlDataAdapter da=new SqlDataAdapter("select * from authors",cn);
       DataSet ds=new DataSet();
       da.Fill(ds,"authors");
       DataGrid1.DataSource=ds.Tables["authors"].DefaultView;
       DataGrid1.DataBind();
       cn.Close();
       showstate();
      }
      void showstate()
      {
       SqlConnection cn=new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=");
       cn.Open();
       SqlDataAdapter da=new SqlDataAdapter("select * from authors",cn);
       DataSet ds=new DataSet();
       da.Fill(ds,"authors");
       DataTable dt=ds.Tables["authors"];
       int count=dt.Rows.Count;
       lblallcount.Text=count.ToString();
       lblpagecount.Text=DataGrid1.PageCount.ToString();
       lblcurrentindex.Text=(DataGrid1.CurrentPageIndex+1).ToString();
      }
      void btnClick(object sender,System.EventArgs e)
      {
       string arg=((LinkButton)sender).CommandArgument;
       switch(arg)
       {
        case ("first"):
         DataGrid1.CurrentPageIndex=0;
         break;
        case ("prev"):
         if(DataGrid1.CurrentPageIndex>0)
          DataGrid1.CurrentPageIndex--;
         break;
        case ("next"):
         if(DataGrid1.CurrentPageIndex<(DataGrid1.PageCount-1))
          DataGrid1.CurrentPageIndex++;
         break;
        case ("last"):
         DataGrid1.CurrentPageIndex=DataGrid1.PageCount-1;
         break;
        default:
         DataGrid1.CurrentPageIndex=Convert.ToInt32(arg);
         break;
       }
       BindGrid();
      }

      private void goClick(object sender, System.EventArgs e)
      {
       if(to.Text.Trim()!="")
       {
        int index=Int32.Parse(to.Text.Trim())-1;
        if(index>=0&&index<DataGrid1.PageCount)
        {
         DataGrid1.CurrentPageIndex=index;
        }
       }
       BindGrid();
      }

    }
    }
  • 相关阅读:
    几个新角色:数据科学家、数据分析师、数据(算法)工程师
    人类投资经理再也无法击败电脑的时代终将到来了...
    Action Results in Web API 2
    Multiple actions were found that match the request in Web Api
    Routing in ASP.NET Web API
    how to create an asp.net web api project in visual studio 2017
    网站漏洞扫描工具
    How does asp.net web api work?
    asp.net web api history and how does it work?
    What is the difference between a web API and a web service?
  • 原文地址:https://www.cnblogs.com/skyshenwei/p/1651862.html
Copyright © 2011-2022 走看看