我给GridView绑定了一个AspNetPager分页控件, 程序运行没问题,可以点下一页的话,就出现异常,各位帮我看看
页面cs代码是这样写的   protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.QueryString["mid"] != null)
            {
                ViewState["mid"] = Request.QueryString["mid"].ToString();
                Bind();
            }
        }
    }    //绑定数据源
    public void Bind()
    {
        try
        {
            MODULE_MenuContent mc = new MODULE_MenuContent();
            mc.Mid = Convert.ToInt32(ViewState["mid"].ToString());
            mc.Size = AspNetPager1.PageSize;
            mc.Index = AspNetPager1.CurrentPageIndex;            //查询记录集
            mc.Docont = 0;
            PagedDataSource pds = new PagedDataSource();
            DataTable dt = (DataTable)bll.Pager(mc);
            pds.DataSource = dt.DefaultView;
            Response.Write(pds.DataSourceCount.ToString());
            pds.AllowPaging = true;
            pds.PageSize = AspNetPager1.PageSize;
            pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            GridView1.DataSource = pds;
            GridView1.DataBind();
        }
        catch (Exception ex)
        {
            js.JsMsg(ex.Message);
        }
    }    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        Bind();
    }
存储过程是这样的,测试没有问题create procedure MenuContent_pager
@mid int,--菜单编号
@pagesize int,--每页行数
@pageindex int--页索引
as
set nocount on
begin
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select id from MenuContent  where mid=@mid order by addtime desc
select O.id,O.title,O.content,O.addtime,O.click from MenuContent O,@indextable t where O.id=t.nid
and t.id between @PageLowerBound+1 and @PageUpperBound order by t.id
end
set nocount off
GO

解决方案 »

  1.   

    eee
      分不够我再加
         高手快来帮我看看啊
      

  2.   


    既然用到aspnetpager控件就没有必要再用pagedDataSource对象了lz可以看一下aspnetpager是如何调用并绑定数据服务器控件的实例.一般的aspnetpager控件,你只需要传给它两个参数就可以了一个是 pagesize,还一个就是Recordcount (数据的记录数:这个是由你的存储过程返回来的结果集的记录数)