未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。...

网上关于这个错误的描述五花八门,遇到的问题都不尽相同。有的还说把Page的EnableViewState改为false, 这都是什么鬼主意。

我的页面是一个UpdatePanel里面放了一个GridView, GridView翻页翻几页后就报这个错。最后观察发现只有翻过最后一页后,再翻其它页,才会报这个错,果断认定如果不是微软Bug,一定是翻页数据绑定有问题。

果不其然,是绑定有一处写错了。我觉得如果有牵涉到分页的类似错误,大家看看分页代码有无问题先。见下面红色代码说明:

        private void BindFeedBackList(int pageIndex)
        { 
            var filter = new List<System.Linq.Expressions.Expression<Func<CM_FeedBack,bool>>>();
            if(CurrentListMode == ListMode.MyFeedBack 
                && !string.IsNullOrWhiteSpace(Context.User.Identity.Name))
            {
                filter.Add(item => item.Username == Context.User.Identity.Name);
            }

            var data = Services.FeedBackService.QueryFeedBack(pageIndex, gvList.PageSize, filter);//之前是这一句把第一个参数写成了0,到最后一页应该绑定一条数据,但确绑定了5条
            DataSourceHelper.BindGridView(pageIndex, gvList.PageSize, data.TotalCount, data.PageData, gvList);            
        }

        protected void gvList_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            BindFeedBackList(e.NewPageIndex);
        }

 

转载于:https://www.cnblogs.com/nanfei/p/3308511.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值