所属类别:.NET
文章作者:未知
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
PageChange.ascx================================================================<%@ Control Language="c#" AutoEventWireup="false" Codebehind="PageChange.ascx.cs" Inherits="Ex_Test.PageChange" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>[首 页] [上一页] [下一页] [末 页] =======================================================================PageChange.ascx.cs===================================================================namespace Ex_Test{using System;using System.Data;using System.Drawing;using System.Web;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Data.SqlClient;/// ///PageChange 的摘要说明。/// public abstract class PageChange : System.Web.UI.UserControl{protected System.Web.UI.WebControls.Button NewPageGo;protected System.Web.UI.WebControls.Literal Literal2;protected System.Web.UI.WebControls.TextBox NewPageIndex;protected System.Web.UI.WebControls.Literal Literal1;protected System.Web.UI.WebControls.LinkButton LastPage;protected System.Web.UI.WebControls.LinkButton NextPage;protected System.Web.UI.WebControls.LinkButton PrevPage;protected System.Web.UI.WebControls.LinkButton FirstPage;protected int currentpage;protected int pagesize;protected string proc;protected System.Web.UI.WebControls.DataGrid datagrid;public int _CurrentPage{get{return currentpage;}set{currentpage = value;}}public int _pageSize{get{return pagesize;}set{pagesize = value;}}public string _proc{get{return proc;}set{proc = value;}}public DataGrid _datagrid{get{return datagrid;}set{datagrid = value;}}protected int rowcount;private void Page_Load(object sender, System.EventArgs e){// 在此处放置用户代码以初始化页面if(!IsPostBack){using(SqlConnection conn = new SqlConnection("User id=sa;password=admin;server=server-mk;initial catalog=pubs;timeout=90"){SqlCommand cmd = new SqlCommand("select count(*) as expr1 from authors",conn);cmd.Connection.Open();rowcount = (int)cmd.ExecuteScalar();cmd.Connection.Close();ViewState["rowscount"] = rowcount;}ViewState["currentpage"] = currentpage;FillGrid(proc,currentpage,pagesize,datagrid);}}#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){//// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}///设计器支持所需的方法 - 不要使用///代码编辑器修改此方法的内容。/// private void InitializeComponent(){this.FirstPage.Click += new System.EventHandler(this.FirstPage_Click);this.PrevPage.Click += new System.EventHandler(this.PrevPage_Click);this.NextPage.Click += new System.EventHandler(this.NextPage_Click);this.LastPage.Click += new System.EventHandler(this.LastPage_Click);this.NewPageGo.Click += new System.EventHandler(this.NewPageGo_Click);this.Load += new System.EventHandler(this.Page_Load);}#endregionprivate void FillGrid(string proc,int currentpage,int pagesize,DataGrid datagrid){using(SqlConnection conn = new SqlConnection("User id=sa;password=admin;server=server-mk;initial catalog=pubs;timeout=90"){SqlCommand cmd = new SqlCommand(proc,conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add("@CurrentPage",currentpage);cmd.Parameters.Add("@PageSize",pagesize);cmd.Connection.Open();SqlDataReader sdr = cmd.ExecuteReader();datagrid.DataSource = sdr;datagrid.DataBind();sdr.Close();cmd.Connection.Close();}}//首页private void FirstPage_Click(object sender, System.EventArgs e){//disabled首页按钮和上一页按钮FirstPage.Enabled = false;PrevPage.Enabled = false;currentpage = 0; ViewState["currentpage"] = currentpage;FillGrid(proc,currentpage,pagesize,datagrid);//如果不止一页if((int)ViewState["rowscount"]>((int)ViewState["currentpage"]+1)*pagesize){NextPage.Enabled = true;}if((int)ViewState["rowscount"]>((int)ViewState["currentpage"]+1)*pagesize){LastPage.Enabled = true;}}//上一页private void PrevPage_Click(object sender, System.EventArgs e){NextPage.Enabled = true;LastPage.Enabled = true; currentpage = (int)ViewState["currentpage"]-1;ViewState["currentpage"] = currentpage;FillGrid(proc,currentpage,pagesize,datagrid);//如果到首页则disabled首页和上一页按钮if((int)ViewState["currentpage"]==0){PrevPage.Enabled = false;FirstPage.Enabled = false;//return;}}//下一页private void NextPage_Click(object sender, System.EventArgs e){ViewState["currentpage"] = (int)ViewState["currentpage"]+1;currentpage = (int)ViewState["currentpage"];FillGrid(proc,currentpage,pagesize,datagrid);PrevPage.Enabled = true;FirstPage.Enabled = true;//如果已经到了最后一页if(((int)ViewState["currentpage"]+1)*pagesize>(int)ViewState["rowscount"]){NextPage.Enabled = false;LastPage.Enabled = false;}}//末页private void LastPage_Click(object sender, System.EventArgs e){LastPage.Enabled = false; NextPage.Enabled = false;ViewState["currentpage"] = (int)Math.Ceiling((int)ViewState["rowscount"]/pagesize);currentpage = (int)ViewState["currentpage"];FillGrid(proc,currentpage,pagesize,datagrid);//如果有不止一页的纪录if((int)ViewState["currentpage"]>1){FirstPage.Enabled = true;PrevPage.Enabled = true;}//如果只有一页的纪录else{FirstPage.Enabled = false;PrevPage.Enabled = false;}}//跳转private void NewPage_Go(string i){try{int PageIndex = Int32.Parse(i);if (PageIndex<=0){PageIndex = 0;}else{if(PageIndex>(int)Math.Ceiling((int)ViewState["rowscount"]/pagesize)){PageIndex = (int)Math.Ceiling((int)ViewState["rowscount"]/pagesize);}else{PageIndex--;}}//简单起见,将所有的linkbutton全部改为enable=trueFirstPage.Enabled = true;NextPage.Enabled = true;LastPage.Enabled = true;PrevPage.Enabled = true;ViewState["currentpage"] = PageIndex;FillGrid(proc,(int)ViewState["currentpage"],pagesize,datagrid);}catch(Exception){return;}}private void NewPageGo_Click(object sender, System.EventArgs e){ NewPage_Go(NewPageIndex.Text.Trim());}}}PageForm.aspx==================================================================<%@ Page language="c#" Codebehind="PageForm.aspx.cs" AutoEventWireup="false" Inherits="Ex_Test.PageForm" %><%@ Register TagPrefix="MK" TagName="PageChange" src="PageChange.ascx"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >PageForm=================================================================PageForm.aspx.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;namespace Ex_Test{/// /// PageForm 的摘要说明。/// public class PageForm : System.Web.UI.Page{protected System.Web.UI.WebControls.DataGrid DataGrid1;protected System.Web.UI.WebControls.Panel Panel1;protected Ex_Test.PageChange pc;private void Page_Load(object sender, System.EventArgs e){// 在此处放置用户代码以初始化页面//if(!IsPostBack)//{pc._CurrentPage = 0;pc._datagrid = DataGrid1;pc._pageSize =7;pc._proc = "Page_Change";//}}#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){//// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}/// /// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// private void InitializeComponent(){this.Load += new System.EventHandler(this.Page_Load);}#endregion}}=================================================================存储过程:Create PROCEDURE dbo.Page_Change/*(@parameter1 datatype = default value,@parameter2 datatype OUTPUT)*/(@PageSize int,@CurrentPage int)AS/* SET NOCOUNT ON */select *,IDENTITY(int,1,1) as Num into #TempAuthors from Authorsselect * from #TempAuthors where Num > (@PageSize*@CurrentPage) and Num < (@PageSize*@CurrentPage+@PageSize+1)RETURN关闭本页
相关信息· 关于tomcat配置文件
· Linux内核开发者的实用技巧两则
· Lava-lava新版本 够鲜够酷!
· C语言编程小技巧
102193
39245
