不知道是小弟没用好,还是本身的BUG。小弟使用URL进行分页,主要代码如下:
private void Page_Load(object sender, System.EventArgs e)
{ //载入数据
if (!Page.IsPostBack)
{ BindData(); }
}
private void objPager_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e)
{
objPager.CurrentPageIndex = e.NewPageIndex; BindData();
}
问题是:翻页事件中的BindData()是每一次都会执行的,而在使用URL翻页的情况下Page_Load中的BandData()也是会执行的,所以在每访问一次,都会执行2次数据库操作?也就是多余了一次是小弟用错了,还是别的问题,希望大家给个指点:)
如果是
fzuray#hotmail.com
private void Page_Load(object sender, System.EventArgs e)
{ //载入数据
if (!Page.IsPostBack)
{ BindData(); }
}
private void objPager_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e)
{
objPager.CurrentPageIndex = e.NewPageIndex; BindData();
}
问题是:翻页事件中的BindData()是每一次都会执行的,而在使用URL翻页的情况下Page_Load中的BandData()也是会执行的,所以在每访问一次,都会执行2次数据库操作?也就是多余了一次是小弟用错了,还是别的问题,希望大家给个指点:)
如果是
fzuray#hotmail.com
异常出现在这里。。如果在page_Load中没有执行 捆绑 的操作,那翻页的事件中
pager.CurrentPageIndex=e.NewPageIndex;//此句将无效。。
CurrentPageIndex将不能被更新,从而导致不能成功翻页这个问题确实存在,请webdiyer兄看看 :)
是翻第二页的时候,要先把 RecordCount 设置一个比大的值才能翻到其他页,否则老是在第一页。之前你的DEMO中有2个问题没更新,有空的时候改改吧
1)在URL翻页的情况下,Page_Load中多了绑定事件。
2)在URL翻页情况下,要先把RecordCount属性设置到一定大小才能使用。 objPager.RecordCount = 10000;//设置临时的页数
objPager.CurrentPageIndex = e.NewPageIndex;
BindData();
暂时没有时间升级到2.0版,不过现在的版本在asp.net 2.0下也可以正常使用,谢谢!
每个页面需要获取2种数据,1是符合查询条件的数据总数(recordCount),另一个是 返回的查询集合。而目前我为了提高效率,使用的方法是一次就把 2种数据都返回,因此一开始没有去获取实际的RecordCount属性,而是把RecordCount设置成一个比较大的值,这样我才可以在翻页码大于1的页面。不过实现这个方法 可以有很多方法。。