ASP.NET技巧:DataGrid传统分页方式_.Net教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:.NET环境下几种不同的邮件发送解决方案1、使用outLook提供的发送 如:我见过的用友软件U8生产制造(演示版),其中的邮件功能就是通过调用outLook的ActiveX 组件 优点:开发简单 缺点:依赖outlook组件,SMTP 邮件服务 邮件发
此分页方式与传统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 } } |
分享:VB.NET实现窗体图标最小化到状态栏本文所使用的编程环境是Microsoft Visual Studio 2005,首先打开 Visual Studio。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗
相关.Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-ASP.NET技巧:DataGrid传统分页方式。