RSS订阅
用户名: 密码:

ASP.NET技巧:DataGrid传统分页方式

2007-08-29 12:50:09 作者:探索者 来源: 浏览次数:0 网友评论 0

此分页方式与传统A 分页方式相仿。

DataGridPage.a x


<%@ Page language="c#" Codebehind="DataGridPage.a x.c quot; AutoEventWireup="false" Inherits=" etCRM.DataGridPage" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Tra itional//E quot; >
<HTML>
 lt;HEAD>
  <title>DataGridPage</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1" gt;
  <meta name="CODE_LANGUAGE" Content="C#" gt;
  <meta name="vs_defaultClientScript" content="JavaScript" gt;
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellise e/ie5" gt;
 lt;/HEAD>
 lt ody MS_POSITIONING="GridLayout" gt;
  <form id="Form1" method=" ost" runat=" erver" gt;
  <a :datagrid id="DataGrid1" runat=" erver" AlternatingItemStyle-BackColor="#eeeeee" HeaderStyle-BackColor="#aaaadd"
  Font-Size="8pt" Font-Name="Verdana" CellPadding="3" BorderWidth="1px" BorderColor=" lack"
  PagerStyle-HorizontalAlign="Right" PagerStyle-Mode=" umericPage quot;
  PageSize="5" Font-Names="Verdana" Width="100%" gt;
  <AlternatingItemStyle BackColor="#EEEEEE" gt lt;/AlternatingItemStyle>
  <HeaderStyle BackColor="#AAAADD" gt lt;/HeaderStyle>
  < agerStyle HorizontalAlign="Right" Mode=" umericPage quot gt lt;/PagerStyle>
  </a :datagrid>
  </form>
  <TABLE cell acing="0" cellPadding="1" width="100%" bgColor="#aaaadd" border="0" gt;
  <TBODY>
  <TR>
  <TD>
  <TABLE cell acing="0" cellPadding="4" width="100%" bgColor="#fef8e2" border="0" gt;
  <TBODY>
  <TR>
  <TD cla ="M" noWrap align="center" gt lt;a :Literal id="Literal1" runat=" erver" gt lt;/a :Literal> lt;/TD>
  </TR>
  <TR>
  <TD cla ="C" noWrap align="center" gt lt;a :Literal id="Literal2" runat=" erver" gt lt;/a :Literal> lt;/TD>
  </TR>
  </TBODY>
  </TABLE>
  </TD>
  </TR>
  </TBODY>
  </TABLE>
 lt;/body>
</HTML>

DataGridPage.a x.cs


using System;
using System.Collectio 
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.We 
using System.Web.Se io tate;
using System.Web.UI;
using System.Web.UI.WebControl 
using System.Web.UI.HtmlControl 
name ace netCRM
{
 /// < ummary>
 /// DataGridPage 的摘要说明。
 /// </summary>
 ublic cla  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(!I ostBack)
  {
  BindGrid();
  }
  }
  private void BindGrid()
  {
  string co tring = " erver=.;Database=NorthWind;User Id=sa a word= quot 
  string sql=" elect * from Order quot 
  SqlCo ection co  = new  SqlCo ection(co tring);
  co .Open();
  DataSet ds = new DataSet();
  SqlDataAdapter sqlAdapter = new SqlDataAdapter(sql,co );
  sqlAdapter.Fill(ds,"user quot;);
  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[" age"]==null)
  {
  cPage="1" 
  }
  else
  {
  cPage=Request.QueryString[" age"].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> ageCount || 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(" ame",Type.GetType(" ystem.String"));
  //DataColumn colItem2 = new DataColumn("type quot;,Type.GetType(" ystem.String"));
  //DataColumn colItem3 = new DataColumn("vendor",Type.GetType(" ystem.String"));
  //myTable.Colum .Add(colItem1);
  //myTable.Colum .Add(colItem2);
  //myTable.Colum .Add(colItem3);
  //add row
  DataRow NewRow;
  for(int i=start;i< umResult i++)
  {
  if(i<to)
  {
  NewRow = myTable.NewRow();
  for(int k=0;k<dataview.Table.Colum .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();
  /// < ummary>
  ///  生成页导航条。
  /// </summary>
  string strNav = " quot 
  int endpage;
  if (currentPage>1)
  {
  strNav += " lt;a href='?page="+ (currentPage-1).ToString() +"'>上一页</a>  " 
  }
  if (currentPage>11)
  {
  strNav += " lt;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 +=" lt;font color=#990000> lt trong> quot;+ i.ToString() +" lt;/strong> lt;/font> " 
  }
  else
  {
  strNav += " lt;a href='?page="+ i.ToString() +"'> quot;+ i.ToString() +" lt;/a> " 
  }
  }
  }
  if((currentPage+10)< ageCount)
  {
  strNav += "... <a href='?page="+ pageCount.ToString() +"'> quot;+ pageCount.ToString() +" lt;/a> quot 
  }
  if(currentPage< ageCount)
  {
  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: 该调用是 A .NET Web 窗体设计器所必需的。
  //
  InitializeComponent();
  base.OnInit(e);
  }
  /// < ummary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  { 
  this.Load += new System.EventHandler(this.Page_Load);
  }
  #endregion
 }
}

相关文章

[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]

最新图片文章

最新文章


关于本站帮助(?)┊广告服务版权声明业务合作加盟我们网站地图联系我们
Copyright © 2005-2008 www.phpip.com online services. All rights reserved. 陕ICP备05002402号
在线管理员 QQ:271162318 17864997