Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Me.IsPostBack = False Then
        Conn_SearCh.Open()
        Dim SearChStr As String = "Select * from C_s_04 Order by sj_04 Desc"
        Dim Searchter As New OleDb.OleDbDataAdapter(SearChStr, Conn_SearCh)
        Searchter.Fill(SearCh_DBset, "Search")
        Me.DataList1.DataSource = SearCh_DBset.Tables("Search")
        Me.DataList1.DataKeyField = "C_s_04_ID"
        Me.DataBind()
        Conn_SearCh.Close()
        End If
    End Sub我想在这段里加上分页的程序,自己是初学asp.net,看了几个列子,但列子里都是用的DataReader而不是DataSet,
没人教了解起来实在是困难,自己还是不会写。请各位高手帮帮忙,在上面着段程序里加上一段分页的代码,小弟万分感谢!!

解决方案 »

  1.   

    Searchter.Fill()参数可以读取任意想要的记录,从而可以做分页
      

  2.   

    www.Webdiyer.com
    去下AspNetPager控件 很好用
    有示例
      

  3.   

    可是我已经写好了这张网页的其他程序了,都用的这个dataset,要是用AspNetPager控件的话会不会的重写那些代码?
    AspNetPager控件我先收藏起来,我还是想知道怎么给DataList分页,请各位帮帮忙!
      

  4.   

    可以使用 PagedDataSource 类为 DataList 分页,DataGrid 控件内部也是使用 PagedDataSource 类来进行分页的.
      

  5.   

    http://community.csdn.net/Expert/topic/3219/3219713.xml?temp=.9903681
      

  6.   

    我也是使用PagedDataSource进行分页
      

  7.   

    #region GetTotem() 获取图腾列表,并绑定到DataList上
    /// <summary>
    /// 获取图腾列表,并绑定到DataList上
    /// </summary>
    private void GetTotem()
    {
    DataSet ds=new DataSet();
    paging.Datalist=TotemList;
    paging.Pagenum=this.CurPageNum;
    paging.Pagecount=this.TotalPageNum;
    paging.List=this.PageNum;
    paging.Lnkjump=this.lnkjump;
    paging.Lnknext=this.lnknext;
    paging.Lnkprev=this.lnkprev;
    paging.Lnklast=this.lnklast;
    paging.Lnkfist=this.lnkfirst;

    ds = oca.GetTotemList(); paging.datapage(ds,18);

    //显示页面导航链接
    ShowPageNum(ds,18);
                        
    try
    {
    PageNum.Items.FindByValue(Request["Page"]).Selected = true;
    lnkjump.NavigateUrl=System.Web.HttpContext.Current.Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(Request["Page"]);
    }
    catch{}
    }
    #endregion #region GetPagecount() 获取页面总数
    /// <summary>
    /// 根据每页记录数及数据集获得页面总数
    /// </summary>
    /// <param name="ds">数据集</param>
    /// <param name="pagenum">每页记录数</param>
    /// <returns>页面总数</returns>
    private int GetPagecount(DataSet ds,int pagenum)
    {
    PagedDataSource objPds = new PagedDataSource();
    objPds.AllowPaging =true;
    //每页显示数目
    objPds.PageSize =pagenum;
    //指定数据源
    objPds.DataSource = ds.Tables[0].DefaultView;

    return objPds.PageCount;
    }
    #endregion #region ShowPageNum() 显示页面链接导航
    /// <summary>
    /// 显示页面链接导航,显示五个
    /// </summary>
    /// <param name="ds">数据集</param>
    /// <param name="PageNum">每页记录数</param>
    private void ShowPageNum(DataSet ds,int PageNum)
    {
    int start_page,cur_page;
    int PageAcount=GetPagecount(ds,PageNum);
    if(Request["Page"] == null)
    {
    start_page = 1;
    }
    else
    {
    cur_page=Convert.ToInt32(Request["Page"]);
    start_page=(cur_page/5)*5+1;
    }
    string strSep = "|";
    //根据页面总数及所需显示的页面数显示页面的链接 
    for(int i=start_page;(i<=PageAcount && i<=(start_page+4));i++)
    {
    strSep += "&nbsp;<a href='"+System.Web.HttpContext.Current.Request.CurrentExecutionFilePath+"?Page=" + Convert.ToString(i)+"'>"+i.ToString()+"</a>&nbsp;|";
    }
    show_num.Text = strSep;
    }
    #endregion