分享
 
 
 

用asp.net轻松打造功能完备的分页技术!!!!

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

用过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="middle">

<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();

}

}

}

好了,现在这个分页的web 程序完成了,你去试试.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有