<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="mybook.WebForm1" %>
<%@ Register TagPrefix="webdiyer" Namespace="Wuqi.Webdiyer" Assembly="AspNetPager" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</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>
<form id="Form1" method="post" runat="server">
<asp:DataList id="MyDataList" runat="server" Height="240px">
<ItemTemplate>
<table width="760" border="1" align="center">
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"username")%></td>
</tr>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"content")%></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
<webdiyer:AspNetPager id="haha" runat="server" PageSize="5" ShowInputBox="Always" SubmitButtonText="转到"
FirstPageText="首页" LastPageText="尾页" NextPageText="下页" PrevPageText="上页" ShowCustomInfoSection="Left"
CustomInfoSectionWidth="50%"></webdiyer:AspNetPager></form>
</body>
</HTML>
后台
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
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 mybook
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected Wuqi.Webdiyer.AspNetPager haha;
protected System.Web.UI.WebControls.DataList MyDataList;

private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection myConnection=new SqlConnection("Data Source=SSD-84C36E3475C;User Id=sa;Pwd=;Database=guest");
DataSet myDS=new DataSet();
string sqlstr="select * from guestbook order by id";
SqlDataAdapter myDataAdapter=new SqlDataAdapter(sqlstr,myConnection);
myConnection.Open();
myDataAdapter.Fill(myDS,"guestbook");
MyDataList.DataSource=myDS;
MyDataList.DataBind();
} #region Web 窗体设计器生成的代码

}
}
我已经加入了aspnetpager,该怎样分页

解决方案 »

  1.   

    用SQL Server的话,你既可以用存储过程来分页,也可以在DataAdapter填充DataSet时进行分页,后者相对更简单,请参考AspNetPager安装后虚拟目录下Access文件夹中的示例,只有几行代码,很简单,最主要是设置分页控件的RecordCount属性和它的PageChanged事件处理程序,在这个事件处理程序中来实现翻页。
      

  2.   

    不只几行啊,有这么多,
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Data"%>
    <%@Import Namespace="System.Data.OleDb"%>
    <%@Register TagPrefix="Webdiyer" TagName="NavBar" Src="../nav.ascx"%>
    <%@Register TagPrefix="Webdiyer" TagName="Copyright" Src="../copyright.ascx"%>
    <%@Register TagPrefix="Webdiyer" Namespace="Wuqi.Webdiyer" Assembly="aspnetpager"%>
    <script runat="server">
    OleDbConnection conn;
    OleDbCommand cmd;
    void Page_Load(object src,EventArgs e){
    conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("aspnetpager.mdb"));
    if(!Page.IsPostBack){
    cmd=new OleDbCommand("select count(newsid) from wqnews",conn);
    conn.Open();
    pager.RecordCount=(int)cmd.ExecuteScalar();
    conn.Close();
    BindData();//获取分页属性值
    psize.Items.FindByValue(pager.PageSize.ToString()).Selected=true;//获取导航按钮属性值
    bcount.Items.FindByValue(pager.NumericButtonCount.ToString()).Selected=true;
    showfl.Checked=pager.ShowFirstLast;
    showpn.Checked=pager.ShowPrevNext;
    showindex.Checked=pager.ShowPageIndex;
    cnindex.Checked=pager.ChinesePageIndex;
    showdb.Checked=pager.ShowDisabledButtons;
    bpadding.Text=pager.PagingButtonSpacing.ToString();
    bfstring.Text=pager.NumericButtonTextFormatString;
    fptext.Text=pager.FirstPageText;
    lptext.Text=pager.LastPageText;
    nptext.Text=pager.NextPageText;
    pptext.Text=pager.PrevPageText;//获取用户自定义信息区属性值
    showisec.SelectedIndex=(int)pager.ShowCustomInfoSection;
    cuswidth.Text=pager.CustomInfoSectionWidth.ToString();
    cusalign.Items.FindByValue(pager.CustomInfoTextAlign.ToString()).Selected=true;
    cusstyle.Text=pager.CustomInfoStyle;//获取文本框及提交按钮属性值
    showbox.Items[(int)pager.ShowInputBox].Selected=true;
    subtext.Text=pager.SubmitButtonText;
    txtbeforebox.Text=pager.TextBeforeInputBox;
    txtafterbox.Text=pager.TextAfterInputBox;
    boxstyle.Text=pager.InputBoxStyle;
    threshold.Text=pager.ShowBoxThreshold.ToString();//获取图片按钮属性值
    btntype.SelectedIndex=(pager.PagingButtonType==PagingButtonType.Text)?0:1;
    imgpath.Text=pager.ImagePath;
    imgext.Text=pager.ButtonImageExtension;
    imgnameext.Text=pager.ButtonImageNameExtension;
    cpinameext.Text=pager.CpiButtonImageNameExtension;
    disnameext.Text=pager.DisabledButtonImageNameExtension;
    }
    }void BindData(){
    cmd=new OleDbCommand("select newsid,heading,source,addtime from wqnews order by addtime desc",conn);
    OleDbDataAdapter adapter=new OleDbDataAdapter(cmd);
    DataSet ds=new DataSet();
    adapter.Fill(ds,pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,"news");
    dlist.DataSource=ds.Tables["news"];
    dlist.DataBind();
    //获取并显示分页信息
    cindex.Text=pager.CurrentPageIndex.ToString();
    rcount.Text=pager.RecordCount.ToString();
    pcount.Text=pager.PageCount.ToString();
    pagesize.Text=pager.PageSize.ToString();
    pagesleft.Text=pager.PagesRemain.ToString();
    recordsleft.Text=pager.RecordsRemain.ToString();//动态设置用户自定义文本内容
    pager.CustomInfoText="记录总数:<font color=\"blue\"><b>"+pager.RecordCount.ToString()+"</b></font>";
    pager.CustomInfoText+=" 总页数:<font color=\"blue\"><b>"+pager.PageCount.ToString()+"</b></font>";
    pager.CustomInfoText+=" 当前页:<font color=\"red\"><b>"+pager.CurrentPageIndex.ToString()+"</b></font>";
    }void ChangePage(object src,PageChangedEventArgs e){
    pager.CurrentPageIndex=e.NewPageIndex;
    BindData();
    System.Text.StringBuilder sb=new StringBuilder("<script Language=\"Javascript\"><!--\n");
    sb.Append("var el=document.all;");
    sb.Append(dlist.ClientID);
    sb.Append(".scrollIntoView(true);");
    sb.Append("<");
    sb.Append("/");
    sb.Append("script>");
    if(!Page.IsStartupScriptRegistered("scrollScript"))
    Page.RegisterStartupScript("scrollScript",sb.ToString());
    }
    void ChangePagerProperties(object src,EventArgs e){//设置分页属性值
    pager.PageSize=int.Parse(psize.SelectedItem.Value);//设置导航按钮属性值
    pager.NumericButtonCount=int.Parse(bcount.SelectedItem.Value);
    pager.ShowFirstLast=showfl.Checked;
    pager.ShowPrevNext=showpn.Checked;
    pager.ShowPageIndex=showindex.Checked;
    if(!IsInputEmpty(fptext.Text))
    pager.FirstPageText=fptext.Text;
    if(!IsInputEmpty(lptext.Text))
    pager.LastPageText=lptext.Text;
    if(!IsInputEmpty(pptext.Text))
    pager.PrevPageText=pptext.Text;
    if(!IsInputEmpty(nptext.Text))
    pager.NextPageText=nptext.Text;
    pager.ChinesePageIndex=cnindex.Checked;
    pager.ShowDisabledButtons=showdb.Checked;
    pager.PagingButtonSpacing=Unit.Parse(bpadding.Text);
    pager.NumericButtonTextFormatString=bfstring.Text;//设置文本框及提交按钮属性值
    pager.ShowInputBox=(ShowInputBox)Enum.Parse(typeof(ShowInputBox),showbox.SelectedItem.Value);
    pager.SubmitButtonText=subtext.Text;
    pager.TextBeforeInputBox=txtbeforebox.Text;
    pager.TextAfterInputBox=txtafterbox.Text;
    pager.ShowBoxThreshold=int.Parse(threshold.Text.Trim());//设置图片按钮属性值
    pager.PagingButtonType=(PagingButtonType)Enum.Parse(typeof(PagingButtonType),btntype.SelectedItem.Value);></html>
      

  3.   

    我帮你把你要用到的部分提出来,其它的你不用管了:void Page_Load(object src,EventArgs e){
    conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("aspnetpager.mdb"));
    if(!Page.IsPostBack){
    cmd=new OleDbCommand("select count(newsid) from wqnews",conn);
    conn.Open();
    //设置要分页的数据的总数
    pager.RecordCount=(int)cmd.ExecuteScalar();
    conn.Close();
    //绑定数据
    BindData();
    }void BindData(){
    cmd=new OleDbCommand("select newsid,heading,source,addtime from wqnews order by addtime desc",conn);
    OleDbDataAdapter adapter=new OleDbDataAdapter(cmd);
    DataSet ds=new DataSet();
    //注意下面这句,只填充当前页要显示的数据,不能把所有数据全填充到DataSet中,否则无法实现分页
    adapter.Fill(ds,pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,"news");
    dlist.DataSource=ds.Tables["news"];
    dlist.DataBind();
    }//翻页事件处理程序,设置分页控件的当前页索引并重新绑定数据
    void ChangePage(object src,PageChangedEventArgs e){
    pager.CurrentPageIndex=e.NewPageIndex;
    BindData();
    }
      

  4.   

    webdiyer兄,我研究你的分页控件几天了,
    还没有搞出个名堂,你可不可以考虑下在你的网站上做几个简单的例子,不要那么多代码和参数的
    access和sqlservr数据库的都做,最好还有一个vs2003下操作你那个控件的详细说明和动画教程
    这样像我这样初用你的控件的人就能马上上手,
    其实我的编程经验很非富啦,我自主用asp,php和jsp编个好几十个网站,可以想像,那些比我还菜的菜鸟拿到你的控件也不会用的
      

  5.   

    搞定了,这是精简的代码
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Data"%>
    <%@Import Namespace="System.Data.OleDb"%>
    <%@Register TagPrefix="Webdiyer" Namespace="Wuqi.Webdiyer" Assembly="aspnetpager"%>
    <script runat="server">
    OleDbConnection conn;
    OleDbCommand cmd;
    void Page_Load(object src,EventArgs e){
    conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("aspnetpager.mdb"));
    if(!Page.IsPostBack){
    cmd=new OleDbCommand("select count(newsid) from wqnews",conn);
    conn.Open();
    //设置要分页的数据的总数
    pager.RecordCount=(int)cmd.ExecuteScalar();
    conn.Close();
    //绑定数据
    BindData();
    }
    }
    void BindData(){
    cmd=new OleDbCommand("select newsid,heading,source,addtime from wqnews order by addtime desc",conn);
    OleDbDataAdapter adapter=new OleDbDataAdapter(cmd);
    DataSet ds=new DataSet();
    //注意下面这句,只填充当前页要显示的数据,不能把所有数据全填充到DataSet中,否则无法实现分页
    adapter.Fill(ds,pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,"news");
    dlist.DataSource=ds.Tables["news"];
    dlist.DataBind();
    }//翻页事件处理程序,设置分页控件的当前页索引并重新绑定数据
    void ChangePage(object src,PageChangedEventArgs e){
    pager.CurrentPageIndex=e.NewPageIndex;
    BindData();
    }</script>
    <HTML><HEAD><TITLE>吴旗娃asp.netpager分页控件使用示例</TITLE>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    <META NAME="Generator" CONTENT="EditPlus">
    <link rel="stylesheet" type="text/css" href="../style.css"></head>
    <body>
    <form runat="server">
    <asp:DataList id="dlist" runat="server" RepeatDirection="Horizontal" RepeatColumns=1 Width="100%">
    <ItemStyle Width="33%"/>
    <ItemTemplate>
    编号:<%#DataBinder.Eval(Container.DataItem,"newsid")%>&nbsp;&nbsp;&nbsp;&nbsp;
    来源:<%#DataBinder.Eval(Container.DataItem,"source")%><br>
    标题:<font color="red"><%#DataBinder.Eval(Container.DataItem,"heading")%></font><br>
    日期:<%#DataBinder.Eval(Container.DataItem,"addtime")%><br>
    <hr size=1>
    </ItemTemplate>
    </asp:DataList><!-----------------------AspNetPager控件设置----------------------------->
    <Webdiyer:AspNetPager runat="server" id="pager" HorizontalAlign="right" ShowInputBox="never" FirstPageText="首页" LastPageText="末页" PrevPageText="上页" NextPageText="下页" OnPageChanged="ChangePage" CssClass="mypager" NumericButtonTextFormatString="{0}" ImagePath="../images" ButtonImageNameExtension="n" CpiButtonImageNameExtension="r" DisabledButtonImageNameExtension="g" TextBeforeInputBox="转到第" TextAfterInputBox="页"/>
    </form>
    </form></body></html>