最近用AspNetPager分页时发现个问题,就是当不启用URL分页时,第一页在首次加载时不显示
解决办法就是在第一次启动时先加载一下第一页,因为每次回调还要调用会导致二次调用,所以判断IsPostBack
protected void Page_Load(object sender, EventArgs e)
{
ISingleResult<sp_RowCountResult> result = context.sp_RowCount("Info");
AspNetPager1.RecordCount = Convert.ToInt32( result.Single<sp_RowCountResult>().RowCount);
if (!IsPostBack)
{
GridView1.DataSource = context.Info.Skip(AspNetPager1.StartRecordIndex - 1).Take(AspNetPager1.PageSize);
GridView1.DataBind();
}
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
GridView1.DataSource = context.Info.Skip(AspNetPager1.StartRecordIndex - 1).Take(AspNetPager1.PageSize);
GridView1.DataBind();
}
顺便说下,Linq分页效率还不错,500万行的数据库按顺序浏览超快,就是从后向前时有点慢,不过在我的机器上也就几秒,比起那个通用分页存储过程还快。。。