zoukankan      html  css  js  c++  java
  • Gridview自定义分页Bug及对策

    Gridview在自定义分页时bug多多。今天就遇到一个:

    条件:按“末页”按钮时,出错:

    错误如下:

    -----------------


    算术运算导致溢出。
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.OverflowException: 算术运算导致溢出。

    源错误:

    执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 

    堆栈跟踪:


    [OverflowException: 算术运算导致溢出。]
       System.Web.UI.WebControls.GridView.CreateDataSourceSelectArguments() +266
       System.Web.UI.WebControls.DataBoundControl.PerformSelect() +59
       System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +68

    ---------------

    原因:

    自定义girdview分页时,分把分页状态保持在viewstate中,然后,使用以下代码取分页。

    if (base.IsViewStateEnabled)
    {
      num1 = this.PageCount - 1;
    }
    else
    {
      num1 = 0x7fffffff;
    }

    如果没有取到viewstate,其页数变为2.147G,然后在显示的时候:

     

    arguments1.StartRowIndex = this.PageSize * this.PageIndex;

    嘿嘿,这一乘,当然就会溢出。M$已经知道这个bug,不过,我不知道3.0中是否已经解决这个问题。但现在,大家用2.0仍是多数

     

    解决方案:

    (1)重载gridview;

    (2)把 enableviewstate设为true;

    圈圈叉叉,最讨厌为了显示内容,设enableviewstate为true了。

     

  • 相关阅读:
    jmeter-CSV Data Set Config
    阿里云linux安装jmeter并进行压测
    HTTP基本认证和JWT鉴权
    Jmeter处理cookie
    Jmeter中一些概念的理解——90%响应时间、事务、并发
    Jmeter使用吞吐量控制器实现不同的用户操纵不同的业务
    Jmeter实现从csv文件中随机读取数据
    Jmeter解决乱码问题
    Docker简介
    docker-compose搭建wordpress[转]
  • 原文地址:https://www.cnblogs.com/minttang/p/1277801.html
Copyright © 2011-2022 走看看