假定pagesize=12,
由于业务的要求,但是13和14条记录也要在本页显示,不在下一页显示。
如要在本也显示,如何操作?

解决方案 »

  1.   

    在PageChanged事件里判断一下行不行的
      

  2.   


    你的分页是自定义分页(AspnetPager或ObjectDataSource结合存储过程),还是默认的分页?某页是指明哪一页?随机指定?下一页的2个记录在翻到下一页时继续显示还是pass?
      

  3.   

    有没有办法先取到GridView1.PageIndex(当前页)的最后一条的纪录,
    然后到邦定的数据源中逐条向后做判断,
      

  4.   

    看来startRowIndex从那个特殊页上必须有个offset了。也就是12*已显示页数 + 1. 也许可以在存储过程中加个offset,如果是正常页offset = 0;非正常页就startRowIndex + 12 * PageIndex + 1.大概这样吧。具体没试过。
      

  5.   

    在点击改页按钮的时候,执行的是
    protected void PagerButtonClick(object sender, EventArgs e)
        {
            GridView1.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandName)-1;
            GridViewBind("");        
        }这个GridViewBind("")中执行
    GridView1.DataSource = ds.Tables[0].DefaultView;
    GridView1.DataBind();所绑定要显示的数据是控件自动根据PageIndex 来判定的?
      

  6.   

    if(pagecurrent==1)
    {
      select top 14* from (select pagesize*(currentpage-1) from table where + strwhere);
    }
    else
    {
      select top 12* from (select pagesize*(currentpage-1) from table where + strwhere);
    }
    没有测试
      

  7.   

    if(pagecurrent==1) 

      select top 14* from (select top* pagesize*(currentpage-1) from table where + strwhere); 

    else 

      select top 12* from (select top* pagesize*(currentpage-1) from table where + strwhere); 
      

  8.   

    可以自己写一个用户控件 里面有一个能返回dataset的方法在写一个类代理,以后这样的问题,就用这个控件去弄就可以