.net(c#)
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _533 : System.Web.UI.Page
{
SqlConnection myconn;
int G_int_Pagesize, G_int_Recordcount, G_int_Page_Count, G_int_CurrentPage;
public int calculaterecord()
{
int intcount;
string strcount = "select count(*) as co from tb_Article";
SqlCommand mycomm = new SqlCommand(strcount, myconn);
SqlDataReader read = mycomm.ExecuteReader();
if (read.Read())
{
intcount = Int32.Parse(read["co"].ToString());
}
else
{
intcount = 0;
}
}
ICollection createsource()
{
int startindex;
startindex = G_int_CurrentPage * G_int_Pagesize;
string strsel = "select * from tb_Article";
DataSet ds = new DataSet();
SqlDataAdapter myadapter = new SqlDataAdapter(strsel, myconn);
myadapter.Fill(ds, startindex, G_int_Pagesize, "tb_Article");
return ds.Tables["tb_Artical"].DefaultView;
}
public void listbind()
{
DlMain.DataSource = createsource();
DlMain.DataBind();
lnkbtnpageUP.Enabled = true;
lnkbtnPageDown.Enabled = true;
if (G_int_CurrentPage == (G_int_Page_Count - 1))
lnkbtnPageDown.Enabled = false;
if (G_int_CurrentPage == 0)
lnkbtnpageUP.Enabled = false;
}
protected void page_load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("server=.;database=db_blog;uid=sa;pwd=sa");
con.Open ();
SqlDataAdapter ada = new SqlDataAdapter("select * from tb_Article", con);
DataSet ds = new DataSet();
ada.Fill(ds);
DlMain.DataSource = ds;
DlMain.DataBind();
G_int_Pagesize = 1;
myconn = new SqlConnection("server=.;database=db_blog;uid=sa;pwd=sa");
myconn.Open();
if (!IsPostBack)
{
listbind();
G_int_CurrentPage = 0;
ViewState["pageindex"] = 0;
G_int_Recordcount = calculaterecord();
lblcount.Text = G_int_Recordcount.ToString();
if (G_int_Recordcount % G_int_Pagesize != 0)
{
G_int_Page_Count = G_int_Recordcount / G_int_Pagesize + 1;
}
else
{
G_int_Page_Count = G_int_Recordcount / G_int_Pagesize;
}
ViewState["G_int_PageCount"] = G_int_Page_Count;
}
}
protected void Page_OnClick(object sender, CommandEventArgs e)
{
G_int_CurrentPage = (int)ViewState["PageIndex"];
G_int_Page_Count = (int)ViewState["G_int_PageCount"];
string cmd = e.CommandName;
switch (cmd)
{
case "next":
if (G_int_CurrentPage < (G_int_Page_Count - 1)) G_int_CurrentPage++;
break;
case "prev":
if (G_int_CurrentPage > 0) G_int_CurrentPage--;
break;
case "first":
G_int_CurrentPage = 0;
break;
case "last":
G_int_CurrentPage = G_int_Page_Count - 1;
break;
}
ViewState["PageIndex"] = G_int_CurrentPage;
listbind();
}
}
谁能详细分析一下这个分页控件代码,看了好几遍,看懂了但似乎少点什么...
有好的分页代码共享一下,你觉得上面可以改进下吗??
(。。。。初学....)