• DataGrid传统分页方式


    此分页方式与传统ASP分页方式相仿.

    DataGridPage.aspx

    <%@ Page language="c#" Codebehind="DataGridPage.aspx.cs" AutoEventWireup="false" Inherits="netCRM.DataGridPage" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
     <HEAD>
      <title>DataGridPage</title>
      <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
      <meta name="CODE_LANGUAGE" Content="C#">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
     </HEAD>
     <body MS_POSITIONING="GridLayout">
      <form id="Form1" method="post" runat="server">
       <asp:datagrid id="DataGrid1" runat="server" AlternatingItemStyle-BackColor="#eeeeee" HeaderStyle-BackColor="#aaaadd"
        Font-Size="8pt" Font-Name="Verdana" CellPadding="3" BorderWidth="1px" BorderColor="Black"
        PagerStyle-HorizontalAlign="Right" PagerStyle-Mode="NumericPages"
        PageSize="5" Font-Names="Verdana" Width="100%">
        <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
        <HeaderStyle BackColor="#AAAADD"></HeaderStyle>
        <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
       </asp:datagrid>
      </form>
      <TABLE cellSpacing="0" cellPadding="1" width="100%" bgColor="#aaaadd" border="0">
       <TBODY>
        <TR>
         <TD>
          <TABLE cellSpacing="0" cellPadding="4" width="100%" bgColor="#fef8e2" border="0">
           <TBODY>
            <TR>
             <TD class="M" noWrap align="center"><asp:Literal id="Literal1" runat="server"></asp:Literal></TD>
            </TR>
            <TR>
             <TD class="C" noWrap align="center"><asp:Literal id="Literal2" runat="server"></asp:Literal></TD>
            </TR>
           </TBODY>
          </TABLE>
         </TD>
        </TR>
       </TBODY>
      </TABLE>
     </body>
    </HTML>

    DataGridPage.aspx.cs

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    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 netCRM
    {
     /// <summary>
     /// DataGridPage 的摘要说明。
     /// </summary>
     public class DataGridPage : System.Web.UI.Page
     {
      protected System.Web.UI.WebControls.Literal Literal1;
      protected System.Web.UI.WebControls.Literal Literal2;
      protected System.Web.UI.WebControls.DataGrid DataGrid1;
     
      private void Page_Load(object sender, System.EventArgs e)
      {
       // 在此处放置用户代码以初始化页面
       if(!IsPostBack)
       {
        BindGrid();
       }
      }

      private void BindGrid()
      {
       string connstring = "Server=.;Database=NorthWind;User Id=sa;Password=;";
       string sql="Select * from Orders";
       SqlConnection conn = new  SqlConnection(connstring);
       conn.Open();
       DataSet ds = new DataSet();
       SqlDataAdapter sqlAdapter = new SqlDataAdapter(sql,conn);
       sqlAdapter.Fill(ds,"users");

       DataView dataview = new DataView();
       dataview = ds.Tables[0].DefaultView;

       DataGrid1.DataSource = ds.Tables[0].DefaultView;
       DataGrid1.DataBind();
       
       
       string cPage;
       int pageSize = 10;
       int currentPage;
       int pageCount;
       int numResults = 0;

       if (Request.QueryString["page"]==null)
       {
        cPage="1";
       }
       else
       {
        cPage=Request.QueryString["page"].ToString();
       }
       try
       {
        currentPage = Int32.Parse(cPage);
       }
       catch
       {
        currentPage = 1;
       }

       numResults = 0;
       int start = (int)((currentPage - 1) * pageSize);
       int to = (int)(currentPage * pageSize);
       if (start <= 0) start = 0;

       numResults = dataview.Count;
       int a1=0;
       pageCount = Math.DivRem(numResults,pageSize,out a1);
       if (a1>0)
       {
        pageCount++;
       }
       if(currentPage>pageCount || currentPage<=0)
       {
        currentPage = 1;
       }
       if(currentPage==pageCount)
       {
        to = dataview.Count;
       }
       
       // Create one DataTable with one column.
       DataTable myTable = new DataTable("myTable");
       myTable = dataview.Table.Clone();

       //DataColumn colItem1 = new DataColumn("name",Type.GetType("System.String"));
       //DataColumn colItem2 = new DataColumn("types",Type.GetType("System.String"));
       //DataColumn colItem3 = new DataColumn("vendor",Type.GetType("System.String"));
       //myTable.Columns.Add(colItem1);
       //myTable.Columns.Add(colItem2);
       //myTable.Columns.Add(colItem3);
       
       //add row
       DataRow NewRow;
       for(int i=start;i<numResults;i++)
       {
        if(i<to)
        {
         NewRow = myTable.NewRow();
         for(int k=0;k<dataview.Table.Columns.Count;k++)
         {
          NewRow[k] = dataview.Table.Rows[i][k];
         }
         myTable.Rows.Add(NewRow);
        }
       }
       myTable.AcceptChanges();

       DataView resultDataview = new DataView(myTable);
       DataGrid1.DataSource = resultDataview;
       DataGrid1.DataBind();

       /// <summary>
       ///  生成页导航条。
       /// </summary>
       string strNav = "";
       int endpage;
       if (currentPage>1)
       {
        strNav += "<a href='?page="+ (currentPage-1).ToString() +"'>上一页</a>  ";
       }
       if (currentPage>11)
       {
        strNav += "<a href='?page=1'>1</a> ...";
       }
       if(pageCount>currentPage+10)
       {
        endpage = currentPage+10;
       }
       else
       {
        endpage = pageCount;
       }
       for (int i=currentPage-10;i<endpage+1;i++)
       {
        if(i>=1)
        {
         if (i==currentPage)
         {
          strNav +="<font color=#990000><strong>"+ i.ToString() +"</strong></font> ";
         }
         else
         {
          strNav += "<a href='?page="+ i.ToString() +"'>"+ i.ToString() +"</a> ";
         }
        }
       }
       if((currentPage+10)<pageCount)
       {
        strNav += "... <a href='?page="+ pageCount.ToString() +"'>"+ pageCount.ToString() +"</a>";
       }
       if(currentPage<pageCount)
       {
        strNav += " <a href='?page="+ (currentPage+1).ToString() +"'>下一页</a>  ";
       }

       Literal1.Text = strNav;   
       Literal2.Text = "共 "+ numResults.ToString() +" 条供应信息,当前显示第 "+
        (start+1).ToString() +" - "+ to.ToString()  +" 条,共 "+ pageCount.ToString() +" 页";
      }

      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }
      
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {   
       this.Load += new System.EventHandler(this.Page_Load);

      }
      #endregion
     }
    }

  • 相关阅读:
    (三)3-5 Python生成式和生成器
    (三)3-4 Python的高阶函数和匿名函数
    Linux下安装Python3
    Python math函数库
    今日头条as,cp,_signature参数破解
    使用scrapy实现分布式爬虫
    scrapy框架持久化存储
    Python中使用rsa加密
    使用Python进行微博登录
    WebDriverWait 显示等待
  • 原文地址:https://www.cnblogs.com/it563/p/818185.html
Copyright © 2020-2023  润新知