在asp.net页面中,左边放入一个treeview控件,右边一个datalist控件;根据treeview所选节点不同,datalist中显示不同的内容,在该页面中我已经加入了一个sqldatasource控件与datalist绑定,根据treeview.selectedvalue的变化,sqldatasource中数据源也相应的改变,从而使datalist中根据treeview所选节点不同而变化。
但是当datalist中数据多的时候,没有分页功能。不知道在这些基础上能不能添加分页功能。请高手帮忙...

解决方案 »

  1.   

    用pageDataSource试试!我没有用sqldatasource试过,你试下吧。我认为还是写的纯代码好用。
      

  2.   

    请问有没有datalist与sqldatasource绑定过之后的分页代码?
      

  3.   

    我用的是AspNetPager分页控件不错,你可以到网上搜一下这个控件的使用方法,很方便,也很好看!你也可以使用MVCPager分页控件,也不错!
      

  4.   

    我已经用sqldatasource绑定过了呀,不知道在这个基础上还有没有更好的办法,谢谢大家
      

  5.   

    可以添加分页如AspNetPager控件
    通过viewstate记录条件值
      

  6.   

    用AspNetPager控件不是要手动绑定datalist吗,我已经用sqldatasource绑定过datalist了,这样的话,datasource就会重复,会出错的......
      

  7.   

    网上有很多分页存储过程!
    datalist.datasource=执行那个存储过程的方法
    datalist.Databind();然后计算出总页数在根据当前页,总页数就很容易得出
      

  8.   

    http://download.csdn.net/source/2028465可以下来参考参考!
      

  9.   

    AspNetPager结合SqlDataSource分页示例(源代码请下载示例项目后查看):http://www.webdiyer.com/AspNetPagerDemo/sqldatasource/default.aspx
      

  10.   


    我看过你说的页面了,请问怎么把AspNetPager与SqlDataSource绑定到一块儿使用,又不需要更改SqlDataSource的数据源呢?请指教....
      

  11.   

    对了,我的datalist根treeview都是放在Updatepanel中的,不知道有没有影响呢?
      

  12.   

    datalist本身没有分页的功能吗?
      

  13.   

     
    这是我的一个Datalist手写的一个分页功能,用pageDataSource,用可以参考一下!
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                MyBind();
            }
        }
        private void MyBind()
        {        List<books> list = new BooksManager().GetPartialBooksBySql(name);
            //分页代码
            PagedDataSource pds = new PagedDataSource();
            //设置数据源
            pds.DataSource = list;
            //允许分页
            pds.AllowPaging = true;
            //设置页大小
            pds.PageSize = 4;
            //设置当前页索引
            Int32 index = Convert.ToInt32(this.lblCurrentPageIndex.Text) - 1;
            //分界判断
            this.btnPre.Enabled = true;
            this.btnNext.Enabled = true;
            if (index <= 0)
            {
                index = 0;
                this.btnPre.Enabled = false;
                this.lblCurrentPageIndex.Text = "1";
            }
            if (index >= pds.PageCount - 1)
            {
                index = pds.PageCount - 1;
                this.btnNext.Enabled = false;
                this.lblCurrentPageIndex.Text = pds.PageCount.ToString();        }
            pds.CurrentPageIndex = index;
            this.lblPageCount.Text = pds.PageCount.ToString();
            this.DataList1.DataSource = pds;
            this.DataList1.DataBind();
            
        }