Asp.net中使用Repeater嵌套绑定(嵌套3层)和AspNetPager分页,第一页正常,其他页面都只绑定出Repeater的第一层,第二层和第三层没有数据,当从其他页面翻到第一页的时候,第一页数据也是显示正常。

解决方案 »

  1.   

    确保分页事件里每一层都重新DataBind了。
      

  2.   

    Repeater中嵌套其它服务器控件的重点在于当Repeater DataItemBound时,Repeater中的服务器控件会重新实例话,所以在Repeater中的控件记录的值永远都是初始化的值,导致Repeater中的服务器控件使用不正常
      

  3.   

    绑定方法就一个根据PAGEINDEX进行绑定 不管是加载还是分页都一个方法就不会出错了
      

  4.   


     private void NewMethod(string count, string where)
        {        DM dm = new DM();
            sql = @"select  " + count + @" *  FROM V_SSSQFX where 1=1   " + where;
            DataSet ds = dm.getsql(" SELECT  " + count + @"* from V_SSSQFX where 1=1  " + where + " order by 所属县");
            //分页处理
            pds = new PagedDataSource();
            pds.DataSource = ds.Tables[0].DefaultView;
            pds.AllowPaging = true;//允许分页
            pds.PageSize = this.anp_page.PageSize;//取控件的分页大小        pds.CurrentPageIndex = this.anp_page.CurrentPageIndex - 1;//显示当前页
            this.anp_page.RecordCount = ds.Tables[0].Rows.Count;//记录总数
            rpt_sssqfx.DataSource = pds;
            rpt_sssqfx.DataBind();
        }protected void anp_page_PageChanged(object sender, EventArgs e)
        {
            NewMethod(count, where);
        } <webdiyer:AspNetPager ID="anp_page" PageSize="15" runat="server" CssClass="anpager"
                        FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PrevPageText="上一页" ShowMoreButtons="False"
                        ShowPageIndexBox="Never" OnPageChanged="anp_page_PageChanged">
                    </webdiyer:AspNetPager>
      

  5.   

    Repeater嵌套绑定(嵌套3层),那么只需要第一层分页,那两层都不需要分页了。
    比如我们翻开第二页,只有第一层数据显示,第二、三层数据不显示,那么就是第二、三层没绑定出数据来。
    也就是第一层分页,第二层,第三层让其数据全部显示出来。