• 用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();
      }

    }
    }
  • 相关阅读:
    现代操作系统读书笔记 2
    java8 中 ImageIO 读取 tiff 格式的图片失败
    word 转 pdf,c#代码
    spring 技术内幕读书笔记1
    操作系统精髓与设计读书笔记1
    手把手教你WEB套打程序开发
    WEB打印控件Lodop使用体会
    listview下拉刷新 上拉(滑动分页)加载更多
    如何解析android访问webservice返回的SoapObject数据(可用)
    统计子串在另一个字符中出现的次数
  • 原文地址:https://www.cnblogs.com/skyshenwei/p/1651862.html
Copyright © 2020-2023  润新知