protected void Page_Load(object sender, EventArgs e)
    {        string keywords =Request.QueryString["keywords"];//关键字
        int totalcount;//总记录数
        int currentpage = 1;//当前页
        int PageSize = 5;//分页大小....
        //计算总页数;totalpage
        int totalpage = 0;
        if (totalcount / PageSize == 0)
        {
            totalpage = totalcount / PageSize;
        }
        else
        {
            totalpage = totalcount / PageSize + 1;
        }
//判断page
 if (string.IsNullOrEmpty(Request.QueryString["page"]) || judgeType.isNumber(Request.QueryString["page"]) == false)
        {
            currentpage = 1;
        }
        else
        {            int tempPageIndex = Convert.ToInt32(Request.QueryString["page"]);            if (tempPageIndex <= 0)
            {
                currentpage = 1;
            }
            else if (tempPageIndex > totalpage)
            {
                currentpage = totalpage;
            }        }
aManage.SetArticleList("articleSearchPage", cid, PageSize, currentpage, keywords);//搜索新闻
     }judgeType 类public class judgeType
{
    public judgeType()
    {
       
    }    
   
    /// <summary>
    /// 判断是否为正整数
    /// </summary>
    /// <param name="strValue"></param>
    /// <returns>是正整数返回true,不是返回false</returns>
    public static bool isNumber(string strValue)
    {
       
        Regex regex = new Regex("^[0-9]*[1-9][0-9]*$");
        return regex.IsMatch(strValue.Trim());     }
}
在Page_Load里定义了 currentpage =1,我在前台传入page值,比如点分页2,3,页面内容还是显示第一页内容,如果定义currentpage = Convert.ToInt32(Request.QueryString["page"])可以分页显示,当传入字符的时候,都出错,没判断page是正整数,帮看看是哪儿的问题

解决方案 »

  1.   

    int i=0;
    int.TryParse(要判断的数字,out i)
      

  2.   

    if(Request.QueryString["page"]==null)
    currentpage =1;
    else
    {
    if(Int32.TryParse(Request.QueryString["page"].ToString(),out currentpage ) ==false)
    currentpage =1;
    }
      

  3.   

    判断有问题。。
    try->
    //判断page
     if (string.IsNullOrEmpty(Request.QueryString["page"]) )
       {
                currentpage = 1;//为空
        }
       else
        {
         if(judgeType.isNumber(Request.QueryString["page"]) == false)
                currentpage = 1;//不为空但不是整数
           int tempPageIndex = Convert.ToInt32(Request.QueryString["page"]);
           //......
      

  4.   

    currentpage =Request.QueryString["page"]==null?1:(judgeType.isNumber(Request.QueryString["page"]):Convert.ToInt32(Request.QueryString["page"]):1);
      

  5.   

    currentpage =Request.QueryString["page"]==null?1:(judgeType.isNumber(Request.QueryString["page"])?Convert.ToInt32(Request.QueryString["page"]):1);
      

  6.   

    判断出错,加个“!”if (string.IsNullOrEmpty(Request.QueryString["page"]) || !judgeType.isNumber(Request.QueryString["page"]))
      

  7.   

    我在地址栏把*.aspx?page=1,改成*.aspx?page=eez,换成字符的,还是一样报错
      

  8.   


    if (Request.QueryString["page"] == null)
            {
                currentpage = 1;
            }
            else
            {
                //判断是否为数值
                if (judgeType.isNumber(Request.QueryString["page"]) == false)
                {
                    currentpage = 1;
                }
                else // 是数值
                {                if (Convert.ToInt32(Request.QueryString["page"]) > totalpage) //是否大于总页数
                    {
                        currentpage = totalpage;
                    }
                    else
                    {
                        currentpage = Convert.ToInt32(Request.QueryString["page"]);
                    }            }
            }这个正确