判断正整数

bychgh 2010-01-12 12:50:48

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是正整数,帮看看是哪儿的问题
...全文
413 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程有钱人了 2010-01-12
  • 打赏
  • 举报
回复
int i=0;
int.TryParse(要判断的数字,out i)
bychgh 2010-01-12
  • 打赏
  • 举报
回复

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"]);
}

}
}



这个正确
jiujiang88 2010-01-12
  • 打赏
  • 举报
回复
判断正整数出错.
bychgh 2010-01-12
  • 打赏
  • 举报
回复
我在地址栏把*.aspx?page=1,改成*.aspx?page=eez,换成字符的,还是一样报错
卧_槽 2010-01-12
  • 打赏
  • 举报
回复
uint.TryParse
zhangkewen1234 2010-01-12
  • 打赏
  • 举报
回复
判断出错,加个“!”

if (string.IsNullOrEmpty(Request.QueryString["page"]) || !judgeType.isNumber(Request.QueryString["page"]))
wuyq11 2010-01-12
  • 打赏
  • 举报
回复
currentpage =Request.QueryString["page"]==null?1:(judgeType.isNumber(Request.QueryString["page"])?Convert.ToInt32(Request.QueryString["page"]):1);
wuyq11 2010-01-12
  • 打赏
  • 举报
回复
currentpage =Request.QueryString["page"]==null?1:(judgeType.isNumber(Request.QueryString["page"]):Convert.ToInt32(Request.QueryString["page"]):1);
wxg22526451 2010-01-12
  • 打赏
  • 举报
回复
判断有问题。。
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"]);
//......
孟子E章 2010-01-12
  • 打赏
  • 举报
回复
if(Request.QueryString["page"]==null)
currentpage =1;
else
{
if(Int32.TryParse(Request.QueryString["page"].ToString(),out currentpage ) ==false)
currentpage =1;
}

编程有钱人了 2010-01-12
  • 打赏
  • 举报
回复
^[1-9]\d*$    //匹配正整数

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧