使用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();
}
}