正在搞DataList的分页
存储过程啊!类封装啊!AspNetPager啊!
前些前在SQL区搞了存储过程的,这里是类封装的
和大家分享一下
大虾们请不要....呵呵
存储过程啊!类封装啊!AspNetPager啊!
前些前在SQL区搞了存储过程的,这里是类封装的
和大家分享一下
大虾们请不要....呵呵
解决方案 »
- split怎么用....新手求解.....!
- jquery ajax如何返回dataset
- 太奇怪了!装了补丁vs2005还是不能创建网站项目
- web.config中设置的属性与页面级的属性哪个级别高?
- Iframe中的GridView模板列刷新问题
- 怎么让微软TREEVIEW树不需要安装,直接用JS调用
- VS2005中,我怎样让一个<asp:HyperLink>一次传2个字段的参数?
- system.xml怎么这么多内容?
- █㊣小政哥㊣█再问基类与继承该类中出现的菜鸟问题,望热心人帮助,分不多. ^_^
- 急啊!大家帮帮忙
- 使用 URLRewriter 组建可以将 hostname/101.aspx 定向为http://hostname/list.aspx?id=101
- 新手问题!高手帮助!
<HEAD>
<title>产品分类页面</title>
<link href="../App_Themes/1.css" rel="stylesheet" type="text/css" />
</HEAD>
<body style="MARGIN: 0px; TEXT-ALIGN: center" MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<table border="0" cellpadding="0" cellspacing="0" width="500px">
<tr>
<td width="600px">
<asp:DataList ID="dlProduct" runat="server">
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="500px">
<tr>
<td colspan="5" width="400">
<a href='ProductDetail.aspx?id=<%# Eval("NewsID")%>'><%# Eval("NewsTitle")%></a>
</td>
<td colspan="5" width="100">
<%#DataBinder.Eval(Container.DataItem, "CreateTime","{0:yyyy-MM-dd}")%>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
<TR>
<TD style="HEIGHT: 23px" align="center"><asp:linkbutton id="lbtnOne" runat="server" OnClick="lbtnOne_Click">首页</asp:linkbutton>
<asp:linkbutton id="lbtnPre" runat="server" OnClick="lbtnPre_Click">上一页</asp:linkbutton>
<asp:linkbutton id="lbtnNext" runat="server" OnClick="lbtnNext_Click">下一页</asp:linkbutton>
<asp:linkbutton id="lbtnLast" runat="server" OnClick="lbtnLast_Click">最后一页</asp:linkbutton>
<asp:label id="lblCurrentPage" runat="server"></asp:label>
<asp:label id="lblPageCount" runat="server"></asp:label>到<asp:textbox id="txtCurrentPage" runat="server" Height="16px" Width="33px"></asp:textbox>页<asp:button id="btnGO" runat="server" Height="23px" Width="40px" CssClass="ButtonCss" Text="GO" OnClick="btnGO_Click"></asp:button></TD>
</TR>
</table>
</form>
</body>
</HTML>
public partial class Controls_PageList : System.Web.UI.Page
{
PagedDataSource pds = new PagedDataSource();
DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
bind_load(); if (this.dlProduct.Items.Count <= 0)
{
this.lblCurrentPage.Text = "无产品";
this.btnGO.Enabled = false;
this.lbtnOne.Enabled = false;
this.lbtnPre.Enabled = false;
this.lbtnLast.Enabled = false;
this.lbtnNext.Enabled = false; }
this.lbtnOne.Enabled = false;
this.lbtnPre.Enabled = false;
}
}
private void bind_load()
{
ds = News.GetAllNewsInfo();
dlProduct.DataSource = ds;
dlProduct.DataBind();
//if (Request.QueryString["highSearch"] != null)
//{
// ds = dlProduct.GetList(Request.QueryString["highSearch"].ToString()); //}
//else
//{
// ds = dlProduct.GetAllList(); //}
#region 为产品列表dlProduct分页做准备
ViewState["ds"] = ds; pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 4;
int CurPage = 0;
// ViewState["CurPage"]="0";
if (ViewState["CurPage"] != null)
{
CurPage = int.Parse(ViewState["CurPage"].ToString());
}
else
{
ViewState["CurPage"] = "0";
CurPage = 0;
} pds.CurrentPageIndex = CurPage;//当前页是从0开始算的.所以要-1
this.lblCurrentPage.Text = "第1页";
int pageCount = 0;
if (ds.Tables[0].Rows.Count % pds.PageSize == 0)
{
pageCount = ds.Tables[0].Rows.Count / pds.PageSize;
}
else
{
pageCount = ds.Tables[0].Rows.Count / pds.PageSize + 1;
}
ViewState["pageCount"] = pageCount;
this.lblPageCount.Text = "共" + pageCount.ToString() + "页";
this.dlProduct.DataSource = pds;
dlProduct.DataKeyField = "NewsID";
this.dlProduct.DataBind(); #endregion
ViewState["ds"] = ds;
}
public void PageChange()
{
pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 10;
int CurPage = 0;
ViewState["CurPage"] = "0";
if (ViewState["CurPage"] != null)
{
CurPage = int.Parse(ViewState["CurPage"].ToString());
}
else
{
ViewState["CurPage"] = "0";
CurPage = 0;
} pds.CurrentPageIndex = CurPage;//当前页是从0开始算的.所以要-1
this.lblCurrentPage.Text = "第1页";
int pageCount = 0;
if (ds.Tables[0].Rows.Count % pds.PageSize == 0)
{
pageCount = ds.Tables[0].Rows.Count / pds.PageSize;
}
else
{
pageCount = ds.Tables[0].Rows.Count / pds.PageSize + 1;
}
ViewState["pageCount"] = pageCount;
this.lblPageCount.Text = "共" + pageCount.ToString() + "页";
this.dlProduct.DataSource = pds;
dlProduct.DataKeyField = "NewsID";
this.dlProduct.DataBind(); if (ds.Tables[0].Rows.Count == 0)
{
lblCurrentPage.Text = "";
this.lbtnOne.Enabled = false;
this.lbtnPre.Enabled = false;
this.lbtnLast.Enabled = false;
this.lbtnNext.Enabled = false;
this.txtCurrentPage.Enabled = false;
this.btnGO.Enabled = false;
}
else
{
this.lbtnOne.Enabled = true;
this.lbtnPre.Enabled = true;
this.lbtnLast.Enabled = true;
this.lbtnNext.Enabled = true;
this.txtCurrentPage.Enabled = true;
this.btnGO.Enabled = true;
}
//iframe自适应所加载页面大小
Response.Write("<script>parent.document.getElementById('iframeGO').style.height=document.body.scrollHeight;</script>");
}
protected void lbtnOne_Click(object sender, EventArgs e)
{ BindPage(0);
ViewState["CurPage"] = "0";
this.lblCurrentPage.Text = "第1页";
if (this.lblCurrentPage.Text == "第1页")
{
this.lbtnPre.Enabled = false;
this.lbtnOne.Enabled = false;
}
else
{
this.lbtnPre.Enabled = true;
this.lbtnOne.Enabled = true;
}
if (this.lblCurrentPage.Text == "第" + ViewState["pageCount"].ToString() + "页")
{
this.lbtnLast.Enabled = false;
this.lbtnNext.Enabled = false;
}
else
{
this.lbtnLast.Enabled = true;
this.lbtnNext.Enabled = true;
}
}
protected void lbtnPre_Click(object sender, EventArgs e)
{
ds = (DataSet)ViewState["ds"];
//PageDataSource 是vs提供的分页控件 .可以直接使用
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 4; int CurPage = int.Parse(ViewState["CurPage"].ToString());
if (ViewState["CurPage"].ToString() == "0")
{
//Jscript.AlertAndRedirect(this, "已是首页!");//当前页是从0开始算的.所以要-1
//return;
}
else
{
pds.CurrentPageIndex = int.Parse(ViewState["CurPage"].ToString()) - 1;
CurPage--;
}
this.dlProduct.DataSource = pds;
dlProduct.DataKeyField = "NewsID";
this.dlProduct.DataBind(); ViewState["CurPage"] = CurPage;
this.lblCurrentPage.Text = "第" + (int.Parse(ViewState["CurPage"].ToString()) + 1).ToString() + "页";
if (this.lblCurrentPage.Text == "第1页")
{
this.lbtnPre.Enabled = false;
this.lbtnOne.Enabled = false;
}
else
{
this.lbtnPre.Enabled = true;
this.lbtnOne.Enabled = true;
}
if (this.lblCurrentPage.Text == "第" + ViewState["pageCount"].ToString() + "页")
{
this.lbtnLast.Enabled = false;
this.lbtnNext.Enabled = false;
}
else
{
this.lbtnLast.Enabled = true;
this.lbtnNext.Enabled = true;
}
}
}
{
ds = (DataSet)ViewState["ds"];
//PageDataSource 是vs提供的分页控件 .可以直接使用
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 4;
int CurPage = int.Parse(ViewState["CurPage"].ToString());
if (CurPage == int.Parse(ViewState["pageCount"].ToString()) - 1)
{
//MessageBox.Show(this, "已达末页");
//return;
}
else
{
pds.CurrentPageIndex = int.Parse(ViewState["CurPage"].ToString()) + 1;
CurPage++;
}
this.dlProduct.DataSource = pds;
dlProduct.DataKeyField = "NewsID";
this.dlProduct.DataBind();
ViewState["CurPage"] = CurPage;
this.lblCurrentPage.Text = "第" + (int.Parse(ViewState["CurPage"].ToString()) + 1).ToString() + "页";
if (this.lblCurrentPage.Text == "第1页")
{
this.lbtnPre.Enabled = false;
this.lbtnOne.Enabled = false;
}
else
{
this.lbtnPre.Enabled = true;
this.lbtnOne.Enabled = true;
}
if (this.lblCurrentPage.Text == "第" + ViewState["pageCount"].ToString() + "页")
{
this.lbtnLast.Enabled = false;
this.lbtnNext.Enabled = false;
}
else
{
this.lbtnLast.Enabled = true;
this.lbtnNext.Enabled = true;
}
}
protected void lbtnLast_Click(object sender, EventArgs e)
{
BindPage(int.Parse(ViewState["pageCount"].ToString()) - 1);
ViewState["CurPage"] = (int.Parse(ViewState["pageCount"].ToString()) - 1).ToString(); this.lblCurrentPage.Text = "第" + ViewState["pageCount"].ToString() + "页";
if (this.lblCurrentPage.Text == "第1页")
{
this.lbtnPre.Enabled = false;
this.lbtnOne.Enabled = false;
}
else
{
this.lbtnPre.Enabled = true;
this.lbtnOne.Enabled = true;
}
if (this.lblCurrentPage.Text == "第" + ViewState["pageCount"].ToString() + "页")
{
this.lbtnLast.Enabled = false;
this.lbtnNext.Enabled = false;
}
else
{
this.lbtnLast.Enabled = true;
this.lbtnNext.Enabled = true;
}
}
protected void btnGO_Click(object sender, EventArgs e)
{
if (this.txtCurrentPage.Text == string.Empty)
{
//MessageBox.Show(this, "请输入页码!");
//MessageBox.Show(this, "请输入页码!");
}
else
{
if (int.Parse(this.txtCurrentPage.Text) > 0 && int.Parse(this.txtCurrentPage.Text) <= int.Parse(ViewState["pageCount"].ToString()))
{
BindPage(int.Parse(this.txtCurrentPage.Text) - 1);
}
else
{
//MessageBox.Show(this, "不存在此页!");
//MessageBox.Show(this, "不存在此页!");
}
if (int.Parse(this.txtCurrentPage.Text) == 1 && int.Parse(ViewState["pageCount"].ToString()) > 1)
{
this.lbtnOne.Enabled = false;
this.lbtnPre.Enabled = false;
this.lbtnLast.Enabled = true;
this.lbtnNext.Enabled = true;
}
if (int.Parse(this.txtCurrentPage.Text) == int.Parse(ViewState["pageCount"].ToString()) && int.Parse(ViewState["pageCount"].ToString()) > 1)
{
this.lbtnLast.Enabled = false;
this.lbtnNext.Enabled = false;
this.lbtnOne.Enabled = true;
this.lbtnPre.Enabled = true;
}
}
}
protected void BindPage(int iPageIndex)
{
//绑定产品
DataSet ds = new DataSet();
ds = (DataSet)ViewState["ds"];
//PageDataSource 是vs提供的分页控件 .可以直接使用
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 4;
pds.CurrentPageIndex = iPageIndex;//当前页是从0开始算的.所以要-1 this.lblCurrentPage.Text = "第" + (iPageIndex + 1).ToString() + "页";
this.dlProduct.DataSource = pds;
dlProduct.DataKeyField = "NewsID";
this.dlProduct.DataBind(); ViewState["CurPage"] = iPageIndex.ToString();
//Response.Write("<script>parent.document.getElementById('iframeGO').style.height=document.body.scrollHeight;</script>"); }