用asp.net輕鬆打造功能完備的分頁技術!!!! (轉)

amyz發表於2007-08-15
用asp.net輕鬆打造功能完備的分頁技術!!!! (轉)[@more@]

  用過開發過的人都知道,分頁讓asp程式設計師是一件非常頭痛的事,我在這就來說說用輕鬆打造的分頁技術.

 第一步我們在vs.net新建專案,這些我不說了,你自己搞定吧,我在這裡主要貼出重要的程式碼.

1.webform1.

" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="page.WebForm1" %>


 


 WebForm1
 
 
 
 " name="vs_targetSchema">
 
 
 
 
 
 
 
 
 
 
 
 







 

一共  記錄
    
   

 
 
 
 跳轉到第
 

 
 

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.Client;

namespace page
{
 ///


 /// WebForm1 的摘要說明。
 ///

 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( sender, System.EventArgs e)
 {
 // 在此處放置程式碼以初始化頁面
 first.Text="最首頁";
 prev.Text="前一頁";
 next.Text="下一頁";
 last.Text="最後頁";
 if(!IsPostBack)
 {
 BindGrid();
 }
 }

 #region Web Form Designer generated code
 overr protected void OnInit(EventArgs e)
 {
 //
 // CODEGEN:該是 ASP.NET Web 窗體設計器所必需的。
 //
 InitializeComponent();
 base.OnInit(e);
 }
 
 ///


 /// 設計器支援所需的方法 - 不要使用程式碼編輯器修改
 /// 此方法的內容。
 ///

 private void InitializeComponent()
 { 
 this.DataGrid1.PageIndd += 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 , 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(" * 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.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.CurrentPageIndex=index;
 }
 }
 BindGrid();
 }

 }
}

 

好了,現在這個分頁的web 程式完成了,你去試試.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958412/,如需轉載,請註明出處,否則將追究法律責任。

相關文章