牛腩购物网 8 整合用户留言 重装系统之后iis7.5 sql2008 vs2010安装顺序,AspNetPager 控件的使用,为什么 anp.StartRecordIndex 总是为1?

今天新装了系统,从windows server 2003 换到 windows server 2008 企业版,总体来说还是蛮好的,就是需要对2008系统进行优化。

我担心的软件问题不是问题,因为在86位(也就是原来的32位系统下)运行的软件,在64位下,也运行的好好的。例如 vs2010都还是能直接运行的,但是

daemon这款我用了很多年的虚拟光驱软件不能使用,换做 VirtualCloneDrive 倒是用的挺好。

重装系统之后,先安装 IIS角色,然后是自带的.net 3.5,然后是 sql 2008 64位版,然后是 vs2010 32位版

然后在我们的牛腩购物网的时候,运行报错,先是调整了 sql数据库的连接字符串,然后是 微软企业库的重新安装,动软生成器的安装,然后是在项目中引用 微软企业库,引用 anpnetpager控件。

为什么 anp.StartRecordIndex 的值总是为1 呢?

最有可能的原因是 我们的anp控件,双击之后的代码没有编写 anp.PageSize 和 anp.CurrentPageIndex

这个原因在于StartRecordIndex是通过CurrentPageIndex属性的值计算出来的,而CurrentPageIndex的值在Page的Load事件发生时,因为AspNetPager的PageChanged事件还没有被引发,所以它的值是上次分页后保存在ViewState中的值,也就是上次分页时的页索引,只有在PageChanged事件之后,CurrentPageIndex的值才是……

protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
            BindRep();
        }
 private void BindRep()
        {
            anp.RecordCount = guestdao.ClacCount("");
            int pagesize = anp.PageSize;
            int pageindex = anp.CurrentPageIndex;

            rep.DataSource = guestdao.GetList("*", "createdate", "desc", pagesize, pageindex, "");
            rep.DataBind();
        }