首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

使用aspnetpager能分页但显示不出数据,该如何处理

2012-03-01 
使用aspnetpager能分页但显示不出数据使用webdiyer的aspnetpager,通过BLL层调用,BLL层的操作类如下:public

使用aspnetpager能分页但显示不出数据
使用webdiyer的aspnetpager,通过BLL层调用,BLL层的操作类如下:

  public   SqlDataReader   ManagerList(int   startIndex,   int   pageSize)
                {
                        DataOperaSql   objConfig   =   new   DataOperaSql();
                        SqlDataReader   dataReader   =   null;
                        SqlParameter[]   Param   =   {
                             
                              objConfig.MakeInParam( "@pagesize ",SqlDbType.Int,4,pageSize),
                              objConfig.MakeInParam( "@pageindex ",SqlDbType.Int,4,startIndex)
                                };

                        objConfig.RunProc( "Manager_List ",   Param,   out   dataReader);


                       
                                return   dataReader;
                   


                }

此函数运行正常,并能读取到第一页的数据,但第二页后的数据就不能读出来了,奇怪的是aspnetpager1的分页是根据所读出的pagesize进行分页,可以正常显示,但datalist中第二页以后的数据不能读取,一片空白.
前台页面的CS代码如下:
protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (!IsPostBack)
                {
                        ManagerOpera   objManagerOpera   =   new   ManagerOpera();
                        AspNetPager1.RecordCount   =   objManagerOpera.GetManagerCount();
                        lblAdminCount.Text   =   AspNetPager1.RecordCount   +   "位 ";
                        this.ShowAdminList();
                       
                }

        }
        protected   void   Button1_Click(object   sender,   EventArgs   e)
        {
                this.pnlAdminAdd.Visible   =   true;
                this.Button1.Enabled   =   false;

        }

        protected   void   ShowAdminList()
        {
                ManagerOpera   objManagerOpera   =   new   ManagerOpera();


                dlstAdminList.DataSource   =   objManagerOpera.ManagerList(AspNetPager1.StartRecordIndex,   AspNetPager1.PageSize);
                dlstAdminList.DataBind();
        }


     
        protected   void   dlstAdminList_SelectedIndexChanged(object   sender,   EventArgs   e)
        {

        }


       
        protected   void   AspNetPager1_PageChanged(object   sender,   EventArgs   e)
        {
                this.ShowAdminList();
        }

页面不报错,但就是不能显示出第二页以后的数据,实在不知道哪里出错,向各位兄台求教,谢谢



[解决办法]
每次分页,dlstAdminList都要重新绑定,即是this.ShowAdminList();不能放再!ISPOSTBACK里面
[解决办法]
我原先遇过,
我的原因是,把这句话AspNetPager1.StartRecordIndex理解错了,不知道你是不是?

这句话的意思是,比如每页10条,当出现第二页时,
AspNetPager1.StartRecordIndex的值是11,
而我原以为是2,所以出错了,

后面是我用Response.write 打出来,才明白
[解决办法]
dlstAdminList每次都要重新绑定的,你如果把数据绑定的sub放到!isPostback里面,那么它只会在第一次打开页面时绑定一次呀,随后你单击什么按钮都不会重新绑定了。。
[解决办法]
你好好看一下ASPNETPAGER的例子!
[解决办法]
最好把分页的方法全部放在 ShowAdminList()里面

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ShowAdminList();

}

}

热点排行