protected void Page_Load(object sender, EventArgs e) { int pageIndex, category, sort; if (!Int32.TryParse(Request["page"], out pageIndex)) { pageIndex = 1; } // pageIndex = pageIndex < 1 ? 1 : pageIndex; //// pageIndex = pageIndex > pageCount ? pageCount : pageIndex; CurrentPage = pageIndex; if (!Int32.TryParse(Request["sort"], out sort)) { sort = Convert.ToInt32(SortType.Default); } Sort = (SortType)sort; switch (Sort) { case SortType.PriceDesc: OrderField = "UnitPrice"; break; case SortType.PriceAsc: IsAsc = true; OrderField = "UnitPrice"; break; case SortType.SalesDesc: OrderField = "PublishDate"; break; case SortType.OnSaleDesc: OrderField = "PublishDate"; break; case SortType.CommentCountDesc: OrderField = "PublishDate"; break; } Int32.TryParse(Request["cat"], out category); if (category == 0) { // 没有分类 throw new HttpException(404, "Not Found"); //Response.Redirect("PageDoesNotExist.aspx"); //as this page will not be existing, it will fire the 404 error, which will redirect to the error page } // CurrentCategory = catbll.QuerySingle(new { Id = category }); if (CurrentCategory == null) { // 没有分类 throw new HttpException(404, "Not Found"); //Response.Redirect("PageDoesNotExist.aspx"); } // 确保有分类 var where = new { CategoryId = CurrentCategory.Id }; TotalCount = booksbll.QueryCount(where); TotalPage = (int)Math.Ceiling(TotalCount / (double)pageSize); ProductList = booksbll.QueryList(CurrentPage, pageSize, where, OrderField, !IsAsc); }