예제 #1
0
        public NewsPagingModel NewsPading(List<News> news, PagingSettingModel pagingSettingModel)
        {
            var newsSettingModel = new NewsPagingModel(pagingSettingModel);

            if (news != null)
            {
                newsSettingModel.Total = news.Count;
                if (news.Count > newsSettingModel.PageSize)
                {
                    var pagingInfo = new PagingInfo("page");
                    pagingInfo.TotalItems = news.Count;
                    pagingInfo.CurrentPage = newsSettingModel.PageIndex;
                    pagingInfo.ItemsPerPage = newsSettingModel.PageSize;
                    var url = Request.Url.ToString().TrimEnd('/');
                    if (!url.Contains("?" + pagingSettingModel.PageIndexQueryKeyName))
                        url += "?" + pagingSettingModel.PageIndexQueryKeyName + "=1";
                    pagingInfo.RequestUrl = url;
                    pagingInfo.PageQueryStringKeyName = pagingSettingModel.PageIndexQueryKeyName;
                    pagingInfo.ShowAllPages = pagingSettingModel.EnableFullPagingControl;
                    pagingInfo.PageCount = pagingSettingModel.PagingLength;

                    newsSettingModel.Results = news.Skip((pagingInfo.CurrentPage - 1) * pagingInfo.ItemsPerPage).Take(pagingInfo.ItemsPerPage).ToList();
                    ViewData["PageInfoModel"] = pagingInfo;
                }
                else
                    newsSettingModel.Results = news.ToList();
            }
            return newsSettingModel;
        }
예제 #2
0
        public ProductSettingModel(PagingSettingModel setting)
        {
            var uriBuilder = new UriBuilder(HttpContext.Current.Request.Url.ToString());
            var query = HttpUtility.ParseQueryString(uriBuilder.Query);
            if (query != null && setting != null)
            {
                this.Keyword = query[setting.KeywordQueryKeyName];
                var pageIndex = !string.IsNullOrEmpty(setting.PageIndexQueryKeyName) ? query[setting.PageIndexQueryKeyName] : string.Empty;
                if (!string.IsNullOrEmpty(pageIndex))
                {
                    query.Remove(setting.PageIndexQueryKeyName);
                    uriBuilder.Query = query.ToString();
                    this.OriginalUrl = uriBuilder.Uri.PathAndQuery;
                }
                else
                    this.OriginalUrl = HttpContext.Current.Request.RawUrl;

                var pageSize = !string.IsNullOrEmpty(setting.PageSizeQueryKeyName) && !string.IsNullOrEmpty(query[setting.PageSizeQueryKeyName]) ? query[setting.PageSizeQueryKeyName] : setting.PageSize.ToString();
                int index = 0, size = 0;
                int.TryParse(pageIndex, out index);
                this.PageIndex = index > 0 ? index : 1;
                int.TryParse(pageSize, out size);
                this.PageSize = size > 0 ? size : 1;
            }
        }
예제 #3
0
        public ActionResult ListSupport()
        {
            var news = new List<News>();
            news = _newService.GetListNewsByCategoryId((int)CategoryNews.Support);

            var pagingSettingModel = new PagingSettingModel(12); ////
            var model = NewsPading(news, pagingSettingModel);

            return View(model);
        }