两位大大,请问objds.DataSource = ds.Tables["ss"].DefaultView;指的是什么呀? 我用SQLSource连接名为Database数据库的photo表。还用另一种方法连接了这个数据表,就是创建了一个教DataSet1.xsd的数据集,在数据集里面建立了photo表的查询的一个getPhoto()方法。然后通过在程序里面调用可以得到查询的结果: using System; using System.Data; using System.Configuration; 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 DataSet1TableAdapters;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { photoTableAdapter photo = new photoTableAdapter(); DataList1.DataSource = photo.getPhoto(); DataList1.DataBind(); }
SQL端分页是指编写SQL查询语句的时候加入分页功能吗?那应该怎么写啊? 比如select * form photo应该怎么改?
给你个例子 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.OleDb;namespace WebText { /// <summary> /// fenye 的摘要说明。 /// </summary> public class fenye : System.Web.UI.Page { protected System.Web.UI.WebControls.DataList DataList1; protected System.Web.UI.WebControls.Label LPageCount; protected System.Web.UI.WebControls.Label LRecordCount; protected System.Web.UI.WebControls.LinkButton Fistpage; protected System.Web.UI.WebControls.LinkButton Prevpage; protected System.Web.UI.WebControls.LinkButton Nextpage; protected System.Web.UI.WebControls.LinkButton Lastpage; protected System.Web.UI.WebControls.Label LCurrentPage; protected System.Web.UI.WebControls.TextBox gotoPage;
const int PageSize=5;//定义每页显示记录 int PageCount,RecCount,CurrentPage,Pages,JumpPage; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面
OleDbDataAdapter MyAdapter = new OleDbDataAdapter("Select Top "+PageSize+" * from rh order by id asc",conn); MyAdapter.Fill(ds,"rh"); DataList1.DataSource = ds.Tables["rh"].DefaultView; DataList1.DataBind(); //显示Label控件LCurrentPaget和文本框控件gotoPage状态 LCurrentPage.Text = (CurrentPage+1).ToString(); gotoPage.Text = (CurrentPage+1).ToString(); //释放oleDataAdapter MyAdapter.Dispose();
} else {
OleDbDataAdapter MyAdapter = new OleDbDataAdapter("Select Top "+PageSize+" * from rh where id not in(select top "+PageSize*CurrentPage+" id from rh order by id asc) order by id asc",conn); MyAdapter.Fill(ds,"rh"); DataList1.DataSource = ds.Tables["rh"].DefaultView; DataList1.DataBind(); //显示Label控件LCurrentPaget和文本框控件gotoPage状态 LCurrentPage.Text = (CurrentPage+1).ToString(); gotoPage.Text = (CurrentPage+1).ToString(); //释放oleDataAdapter MyAdapter.Dispose(); } } // #region Web 窗体设计器生成的代码 // override protected void OnInit(EventArgs e) // { // // // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // // // InitializeComponent(); // base.OnInit(e); // }
int totalpage; int records; int page; int pagesize=10; private void databind() { if (Request["page"]==null) { page=1; } else { try { page=Convert.ToInt32(Request["page"]); } catch { page=1; } }
SqlConnection myconn=new SqlConnection(ConfigurationSettings.AppSettings["conn"]); string sql="select * from bbs order by time desc"; myconn.Open(); SqlDataAdapter myda=new SqlDataAdapter(sql,myconn); DataSet allbbs=new DataSet(); myda.Fill(allbbs); DataSet dsbbs=new DataSet(); records=allbbs.Tables[0].Rows.Count; int startpage=(page-1)*pagesize; int endpage=startpage+pagesize; totalpage=records/pagesize; if (totalpage*pagesize<records) { totalpage++; } if (endpage>records) endpage=records; dsbbs=allbbs.Clone(); for (int i=startpage;i<endpage;i++) { DataRow row=dsbbs.Tables[0].NewRow(); row.ItemArray=allbbs.Tables[0].Rows[i].ItemArray; dsbbs.Tables[0].Rows.Add(row); } lbpage.Text=page+"/"+totalpage; lbrc.Text=records.ToString(); ViewState["page"]=page.ToString();
lbpage.Text=page+"/"+totalpage; if (Request.QueryString["Page"] != null) page=Convert.ToInt32(Request.QueryString["Page"]); else page=1; if (totalpage<page) page=totalpage; if (page<=0) page=1; if (page<=1)
objds.DataSource = ds.Tables["ss"].DefaultView;//dataset 数据源
objds.AllowPaging = true;
objds.PageSize = 6;
//Label6.Text = "总共有" + objds.PageCount.ToString() + "页";
//int curpage;
//if (Request.QueryString["page"] != null)
//{
// curpage = Convert.ToInt32(Request.QueryString["page"].ToString());
//}
//else
//{
// curpage = 1;
//}
//objds.CurrentPageIndex = curpage - 1;
//Label7.Text = "当前第" + curpage.ToString() + "页";
//if (!objds.IsFirstPage)
//{
// HyperLink4.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(curpage - 1);
//}
//if (!objds.IsLastPage)
//{
// HyperLink5.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(curpage + 1);
//} DataList1.DataSource = objds;
DataList1.DataBind();
用PagedDataSource,例如下面
//分页开始
objpage = new PagedDataSource();
objpage.DataSource = ds.Tables["TB"].DefaultView;
objpage.AllowPaging = true;
objpage.PageSize = 36;
int curpage;
if (Request.QueryString["Page"] != null)
curpage = Convert.ToInt32(Request.QueryString["Page"]);
else
curpage = 1;
objpage.CurrentPageIndex = curpage - 1;
if (objpage.IsFirstPage && !objpage.IsLastPage)
{
this.hlProv.Enabled = false;
this.hlNext.NavigateUrl = url + "?page=" + Convert.ToInt32(curpage + 1);
this.hlFirst.Enabled = false;
this.hlLast.NavigateUrl = url + "?page=" + Convert.ToInt32(objpage.PageCount);
}
else
{
if (objpage.IsLastPage && !objpage.IsFirstPage)
{
this.hlFirst.NavigateUrl = url + "?page=" + 1;
this.hlLast.Enabled = false;
this.hlNext.Enabled = false;
this.hlProv.NavigateUrl = url + "?page=" + Convert.ToInt32(curpage - 1);
}
else
{
if (objpage.IsFirstPage && objpage.IsLastPage)
{
this.hlLast.Enabled = false;
this.hlNext.Enabled = false;
this.hlProv.Enabled = false;
this.hlFirst.Enabled = false;
}
else
{
this.hlFirst.NavigateUrl = url + "?page=" + 1;
this.hlLast.NavigateUrl = url + "?page=" + Convert.ToInt32(objpage.PageCount);
this.hlNext.NavigateUrl = url + "?page=" + Convert.ToInt32(curpage + 1);
this.hlProv.NavigateUrl = url + "?page=" + Convert.ToInt32(curpage - 1);
}
}
}
我用SQLSource连接名为Database数据库的photo表。还用另一种方法连接了这个数据表,就是创建了一个教DataSet1.xsd的数据集,在数据集里面建立了photo表的查询的一个getPhoto()方法。然后通过在程序里面调用可以得到查询的结果:
using System;
using System.Data;
using System.Configuration;
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 DataSet1TableAdapters;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
photoTableAdapter photo = new photoTableAdapter();
DataList1.DataSource = photo.getPhoto();
DataList1.DataBind();
}
}你们程序里面的ds.Tables["ss"].DefaultView中的ds指的是我上面方法中的哪一部分呀?还是要用其他的方法来建这个ds?“SS”指的是表名吗?
1。用VIEW来做,但缺点是DATASET太大,没有效率
2。 用SQL端分页方法。2。0里已经有支持。1。1中要利用临时表来处理
比如select * form photo应该怎么改?
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.OleDb;namespace WebText
{
/// <summary>
/// fenye 的摘要说明。
/// </summary>
public class fenye : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList DataList1;
protected System.Web.UI.WebControls.Label LPageCount;
protected System.Web.UI.WebControls.Label LRecordCount;
protected System.Web.UI.WebControls.LinkButton Fistpage;
protected System.Web.UI.WebControls.LinkButton Prevpage;
protected System.Web.UI.WebControls.LinkButton Nextpage;
protected System.Web.UI.WebControls.LinkButton Lastpage;
protected System.Web.UI.WebControls.Label LCurrentPage;
protected System.Web.UI.WebControls.TextBox gotoPage;
const int PageSize=5;//定义每页显示记录
int PageCount,RecCount,CurrentPage,Pages,JumpPage; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
RecCount = Calc();//通过Calc()函数获取总记录数
PageCount = RecCount/PageSize + OverPage();//计算总页数(加上OverPage()函数防止有余数造成显示数据不完整) ViewState["PageCounts"] = RecCount/PageSize - ModPage();//保存总页参数到ViewState(减去ModPage()函数防止ole语句执行时溢出查询范围,可以用存储过程分页算法来理解这句)
ViewState["PageIndex"] = 0;//保存一个为0的页面索引值到ViewState
ViewState["JumpPages"] = PageCount;//保存PageCount到ViewState,跳页时判断用户输入数是否超出页码范围
//显示LPageCount、LRecordCount的状态
this.LPageCount.Text = PageCount.ToString();
LRecordCount.Text = RecCount.ToString();
//判断跳页文本框失效
if(RecCount <= 5)
gotoPage.Enabled = false;
TDataBind();//调用数据绑定函数TDataBind()进行数据绑定运算
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataList1.SelectedIndexChanged += new System.EventHandler(this.DataList1_SelectedIndexChanged);
this.Fistpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
this.Prevpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
this.Nextpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
this.Lastpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
this.gotoPage.TextChanged += new System.EventHandler(this.gotoPage_TextChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Response.Redirect("");
} private void DataList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
string cname = ((ImageButton)sender).CommandArgument;
Response.Redirect("WebForm5.aspx?id="+cname);
} //计算余页
public int OverPage()
{
int pages = 0;
if(RecCount%PageSize != 0)
pages = 1;
else
pages = 0;
return pages;
}
//计算余页,防止ole语句执行时溢出查询范围
public int ModPage()
{
int pages = 0;
if(RecCount%PageSize == 0 && RecCount != 0)
pages = 1;
else
pages = 0;
return pages;
}
/*
*计算总记录的静态函数
*本人在这里使用静态函数的理由是:如果引用的是静态数据或静态函数,连接器会优化生成代码,去掉动态重定位项(对海量数据表分页效果更明显)。
*希望大家给予意见、如有不正确的地方望指正。
*/
public int Calc()
{
string databasepath="database/db.mdb";
OleDbConnection conn=new OleDbConnection("provider=Microsoft.jet.OLEDB.4.0;data Source="+Server.MapPath(databasepath)+";");
conn.Open();
int RecordCount = 0;
OleDbCommand MyCmd = new OleDbCommand("select count(*) as co from rh",conn);
OleDbDataReader dr = MyCmd.ExecuteReader();
if(dr.Read())
RecordCount = Int32.Parse(dr["co"].ToString());
conn.Close();
return RecordCount;
}
//数据库连接语句(从Web.Config中获取)
// public OleDbConnection MyCon()
// {
//
// string databasepath="../database/db.mdb";
// // string str="select * from rh";
// OleDbConnection MyConnection=new OleDbConnection("provider=Microsoft.jet.OLEDB.4.0;data Source="+Server.MapPath(databasepath)+";");
// MyConnection.Open();
//
// return MyConnection;
// }
//
private void Page_OnClick(object sender, CommandEventArgs e)
{
CurrentPage = (int)ViewState["PageIndex"];//从ViewState中读取页码值保存到CurrentPage变量中进行参数运算
Pages = (int)ViewState["PageCounts"];//从ViewState中读取总页参数运算 string cmd = e.CommandName;
switch(cmd)//筛选CommandName
{
case "next":
CurrentPage++;
break;
case "prev":
CurrentPage--;
break;
case "last":
CurrentPage = Pages;
break;
default:
CurrentPage = 0;
break;
}
ViewState["PageIndex"] = CurrentPage;//将运算后的CurrentPage变量再次保存至ViewState
TDataBind();//调用数据绑定函数TDataBind()
} private void TDataBind()
{
CurrentPage = (int)ViewState["PageIndex"];//从ViewState中读取页码值保存到CurrentPage变量中进行按钮失效运算
Pages = (int)ViewState["PageCounts"];//从ViewState中读取总页参数进行按钮失效运算
//判断四个按钮(首页、上一页、下一页、尾页)状态
if (CurrentPage + 1 > 1)
{
Fistpage.Enabled = true;
Prevpage.Enabled = true;
}
else
{
Fistpage.Enabled = false;
Prevpage.Enabled = false;
}
if (CurrentPage == Pages)
{
Nextpage.Enabled = false;
Lastpage.Enabled = false;
}
else
{
Nextpage.Enabled = true;
Lastpage.Enabled = true;
}
//数据绑定到DataList控件
string databasepath="database/db.mdb";
OleDbConnection conn=new OleDbConnection("provider=Microsoft.jet.OLEDB.4.0;data Source="+Server.MapPath(databasepath)+";");
conn.Open();
DataSet ds = new DataSet();
//核心ole语句,进行查询运算(决定了分页的效率:))
if(CurrentPage==0)
{
OleDbDataAdapter MyAdapter = new OleDbDataAdapter("Select Top "+PageSize+" * from rh order by id asc",conn);
MyAdapter.Fill(ds,"rh");
DataList1.DataSource = ds.Tables["rh"].DefaultView;
DataList1.DataBind();
//显示Label控件LCurrentPaget和文本框控件gotoPage状态
LCurrentPage.Text = (CurrentPage+1).ToString();
gotoPage.Text = (CurrentPage+1).ToString();
//释放oleDataAdapter
MyAdapter.Dispose();
}
else
{
OleDbDataAdapter MyAdapter = new OleDbDataAdapter("Select Top "+PageSize+" * from rh where id not in(select top "+PageSize*CurrentPage+" id from rh order by id asc) order by id asc",conn);
MyAdapter.Fill(ds,"rh");
DataList1.DataSource = ds.Tables["rh"].DefaultView;
DataList1.DataBind();
//显示Label控件LCurrentPaget和文本框控件gotoPage状态
LCurrentPage.Text = (CurrentPage+1).ToString();
gotoPage.Text = (CurrentPage+1).ToString();
//释放oleDataAdapter
MyAdapter.Dispose();
}
} // #region Web 窗体设计器生成的代码
// override protected void OnInit(EventArgs e)
// {
// //
// // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
// //
// InitializeComponent();
// base.OnInit(e);
// }
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
// private void InitializeComponent()
// {
// this.Fistpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
// this.Prevpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
// this.Nextpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
// this.Lastpage.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
// this.gotoPage.TextChanged += new System.EventHandler(this.gotoPage_TextChanged);
// this.Load += new System.EventHandler(this.Page_Load);
//
//// }
// #endregion
// //跳页代码
private void gotoPage_TextChanged(object sender, System.EventArgs e)
{
try
{
JumpPage = (int)ViewState["JumpPages"];//从ViewState中读取可用页数值保存到JumpPage变量中
//判断用户输入值是否超过可用页数范围值
if(Int32.Parse(gotoPage.Text) > JumpPage || Int32.Parse(gotoPage.Text) <= 0)
Response.Write("<script>alert('页码范围越界!');location.href='WebForm8.aspx'</script>");
else
{
int InputPage = Int32.Parse(gotoPage.Text.ToString()) - 1;//转换用户输入值保存在int型InputPage变量中
ViewState["PageIndex"] = InputPage;//写入InputPage值到ViewState["PageIndex"]中
TDataBind();//调用数据绑定函数TDataBind()再次进行数据绑定运算
}
}
//捕获由用户输入不正确数据类型时造成的异常
catch(Exception exp)
{
Response.Write("<script>alert('"+exp.Message+"');location.href='WebForm8.aspx'</script>");
}
}
}
}
<%@ Page language="c#" Codebehind="fenye.aspx.cs" AutoEventWireup="false" Inherits="WebText.fenye" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebText2</title>
<meta content="Microsoft Visual Studio .NET 7.1" 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">
<FONT face="宋体">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 8px; WIDTH: 696px; POSITION: absolute; TOP: 8px; HEIGHT: 654px"
cellSpacing="1" cellPadding="1" width="696" border="1">
<TBODY>
<TR>
<TD style="HEIGHT: 545px">
<DIV align="center">
<DIV align="center"> </DIV>
<FONT face="宋体">
<asp:DataList id="DataList1" runat="server" Height="368px" Width="336px">
<ItemTemplate>
<table width="100%" height="94" border="1" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="3">
<A href='<%# "Web.aspx?cname=" + Server.UrlEncode((DataBinder.Eval(Container.DataItem, "cname")).ToString()) %>'>
<asp:Image id="Imagebutton2" runat="server" width="80px" height="80px" ImageUrl='<%#DataBinder.Eval(Container.DataItem,"path")%>'>
</asp:Image>
</A>
</td>
<td width="71%">城市名字:<%#DataBinder.Eval(Container.DataItem,"cname")%></td>
</tr>
<tr>
<td>文件名字:<%#DataBinder.Eval(Container.DataItem,"filename")%></td>
</tr>
<tr>
<td>文件路径:<%#DataBinder.Eval(Container.DataItem,"path")%></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
<div align="center">共<asp:label id="LPageCount" Runat="server" ForeColor="#ff0000"></asp:label>页/共
<asp:label id="LRecordCount" Runat="server" ForeColor="#ff0000"></asp:label>记录
<asp:linkbutton id="Fistpage" Runat="server" CommandName="0">首页</asp:linkbutton> <asp:linkbutton id="Prevpage" Runat="server" CommandName="prev">上一页</asp:linkbutton> <asp:linkbutton id="Nextpage" Runat="server" CommandName="next">下一页</asp:linkbutton> <asp:linkbutton id="Lastpage" Runat="server" CommandName="last">尾页</asp:linkbutton> 当前第<asp:label id="LCurrentPage" Runat="server" ForeColor="#ff0000"></asp:label>页 跳页<asp:TextBox ID="gotoPage" Runat="server" Width="105px" MaxLength="5" AutoPostBack="True"></asp:TextBox></div>
</form>
</DIV>
<DIV></DIV>
<P> </P>
<P></FONT> </P>
</FORM></TD></TR>
<TR>
<TD></TD>
</TR>
</TBODY></TABLE></FONT></FORM>
</body>
</HTML>
int records;
int page;
int pagesize=10;
private void databind()
{
if (Request["page"]==null)
{
page=1;
}
else
{
try
{
page=Convert.ToInt32(Request["page"]); }
catch
{
page=1;
}
}
SqlConnection myconn=new SqlConnection(ConfigurationSettings.AppSettings["conn"]);
string sql="select * from bbs order by time desc";
myconn.Open();
SqlDataAdapter myda=new SqlDataAdapter(sql,myconn);
DataSet allbbs=new DataSet();
myda.Fill(allbbs);
DataSet dsbbs=new DataSet();
records=allbbs.Tables[0].Rows.Count;
int startpage=(page-1)*pagesize;
int endpage=startpage+pagesize;
totalpage=records/pagesize;
if (totalpage*pagesize<records)
{
totalpage++;
}
if (endpage>records)
endpage=records;
dsbbs=allbbs.Clone();
for (int i=startpage;i<endpage;i++)
{
DataRow row=dsbbs.Tables[0].NewRow();
row.ItemArray=allbbs.Tables[0].Rows[i].ItemArray;
dsbbs.Tables[0].Rows.Add(row);
}
lbpage.Text=page+"/"+totalpage;
lbrc.Text=records.ToString(); ViewState["page"]=page.ToString();
lbpage.Text=page+"/"+totalpage; if (Request.QueryString["Page"] != null)
page=Convert.ToInt32(Request.QueryString["Page"]);
else
page=1;
if (totalpage<page)
page=totalpage;
if (page<=0)
page=1;
if (page<=1)
hlnext.Enabled = true;
hlprev.Enabled = true;
if(page==(totalpage))
{
hlnext.Enabled = false;
}
else
hlnext.NavigateUrl=Request.CurrentExecutionFilePath+Request.QueryString["Page+1"] +"?page=" + Convert.ToString(page+1);
if(page==1)
{
hlprev.Enabled = false;
hlnext.Enabled = false;
}
else
hlprev.NavigateUrl=Request.CurrentExecutionFilePath+Request.QueryString["Page-1"] +"?page="+Convert.ToString(page-1);
mydl.DataSource=dsbbs;
mydl.DataBind();
再定义四个LinkButton控件,ID分别为“lnkbtnTop”、“lnkbtnPrve”、“lnkbtnNext”和“lnkbtnLast”,分别用来进行“首页”、“上一页”、“下一页”和“尾页”的翻页操作。
当然还有一个DataList(ID="DataList1")控件了。//cs文件中的内容
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dlBind();
}
}
public void dlBind()
{
int curpage = Convert.ToInt32(labNowPage.Text);
PagedDataSource ps = new PagedDataSource();
SqlConnection myCnn = new SqlConnection("server=(local);uid=sa;pwd=sa;database=pubs");
myCnn.Open();
SqlDataAdapter myAdp = new SqlDataAdapter("select * from authors", myCnn);
DataSet ds = new DataSet();
myAdp.Fill(ds, "authors"); ps.DataSource = ds.Tables["authors"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 4;
ps.CurrentPageIndex = curpage - 1; lnkbtnPrve.Enabled = true;
lnkbtnTop.Enabled = true;
lnkbtnNext.Enabled = true;
lnkbtnLast.Enabled = true;
if (curpage == 1)
{
lnkbtnTop.Enabled = false;
lnkbtnPrve.Enabled = false;
}
if (curpage == ps.PageCount)
{
lnkbtnNext.Enabled = false;
lnkbtnLast.Enabled = false;
}
labCount.Text = Convert.ToString(ps.PageCount);
DataList1.DataSource = ps;
DataList1.DataKeyField = "au_id";
DataList1.DataBind();
}
protected void lnkbtnPrve_Click(object sender, EventArgs e)
{
labNowPage.Text = Convert.ToString(Convert.ToInt32(labNowPage.Text) - 1);
dlBind();
}
protected void lnkbtnTop_Click(object sender, EventArgs e)
{
labNowPage.Text = "1";
dlBind();
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
labNowPage.Text = Convert.ToString(Convert.ToInt32(labNowPage.Text) + 1);
dlBind();
}
protected void lnkbtnLast_Click(object sender, EventArgs e)
{
labNowPage.Text = labCount.Text;
dlBind();
}