Esempio n. 1
0
        private void BindPagerHtml(string keyword)
        {
            // 初始化自定义分页控件
            var pager = new SimplePager();

            pager.UrlFormat = "Search.aspx?pagenum={n}&keyword=" + Server.UrlEncode(keyword);
            pager.PageSize  = 10;
            // 解析当前页码
            pager.TryParseCurrentPageIndex(Request["pagenum"]);
            // 开始计时
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            // 计算起始行
            int startRowIndex = (pager.CurrentPageIndex - 1) * pager.PageSize;
            // 通过逻辑层取得分页
            int totalCount;

            BindSearchResult(keyword, startRowIndex, 10, out totalCount);
            // 停止计时
            stopwatch.Stop();
            // 显示统计结果
            Stastics = String.Format("找到相关网页约{0}篇,用时{1}毫秒", totalCount, stopwatch.ElapsedMilliseconds);
            // 渲染页面HTML代码
            pager.TotalCount = totalCount;
            PagerHTML        = pager.Render();
        }
Esempio n. 2
0
        protected void UpdatePagingControls(PagingInfo pagingInfo)
        {
            // Get each pager
            SimplePager TopPager    = (SimplePager)SiteUtils.FindControlRecursive(this, "TopPager");
            SimplePager BottomPager = (SimplePager)SiteUtils.FindControlRecursive(this, "BottomPager");

            // Update the top pager
            TopPager.CurrentPage = pagingInfo.CurrentPage + 1;
            TopPager.PageSize    = pagingInfo.PageSize;
            TopPager.PageCount   = pagingInfo.TotalPages;
            TopPager.ItemCount   = pagingInfo.TotalRecords;

            // Update the bottom pager
            BottomPager.CurrentPage = TopPager.CurrentPage;
            BottomPager.PageSize    = TopPager.PageSize;
            BottomPager.PageCount   = TopPager.PageCount;
            BottomPager.ItemCount   = TopPager.ItemCount;

            // Set page-based paging info
            CurrentPage = TopPager.CurrentPage;
            TotalPages  = pagingInfo.TotalPages;
            RecordCount = pagingInfo.TotalRecords;
        }
Esempio n. 3
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            //Get Settings
            if (Request.RequestType == "POST")
            {
            }
            else
            {
                //The method was a GET, therfore we must be paging.
                _currentPage    = Strings.ToInt(Request.Params["PageNum"], 1);
                _recordsPerPage = Strings.ToInt(Request.Params["RecordsPerPage"], 10);
                _offSet         = Strings.ToInt(Request.Params["OffSet"], 0);
            }

            if (PerformSearch)
            {
                if (Keyword != null)
                {
                    //Store keyword in viewstate (This does not check if it is not there already)
                    if (ViewState[swKeyword] == null)
                    {
                        ViewState.Add(swKeyword, Keyword);
                    }
                    else
                    {
                        ViewState[swKeyword] = Keyword;
                    }

                    //set up the search collection
                    //determine what text needs to be removed from the title e.g. - National Cancer Institute
                    SiteWideSearchConfig searchConfig = ModuleObjectFactory <SiteWideSearchConfig> .GetModuleObject(SnippetInfo.Data);

                    if (searchConfig != null)
                    {
                        SearchCollection = searchConfig.SearchCollection;
                        ResultTitleText  = searchConfig.ResultTitleText;
                    }

                    try
                    {
                        long dimFilter = Strings.ToLong(ConfigurationManager.AppSettings["EndecaSWSearchDimFilter"], 0);

                        ISiteWideSearchResultCollection results = NCI.Search.SiteWideSearch.GetSearchResults(SearchCollection, Keyword, _recordsPerPage,
                                                                                                             (_currentPage - 1) * _recordsPerPage);

                        rptSearchResults.DataSource = results;
                        rptSearchResults.DataBind();

                        if (results.ResultCount == 0)
                        {
                            ResultsText = "No results found";
                            rptSearchResults.Visible = false;
                        }
                        else
                        {
                            int startRecord = 0;
                            int endRecord   = 0;
                            _resultsFound = true;
                            SimplePager.GetFirstItemLastItem(_currentPage, _recordsPerPage, (int)results.ResultCount, out startRecord, out endRecord);

                            //phNoResultsLabel.Visible = false;
                            rptSearchResults.Visible = true;
                            string resultsCount = String.Format("{0}-{1} of {2}", startRecord.ToString(), endRecord.ToString(), results.ResultCount.ToString());
                            ResultsText = "Results " + resultsCount;
                        }

                        spPager.RecordCount    = (int)results.ResultCount;
                        spPager.RecordsPerPage = _recordsPerPage;
                        spPager.CurrentPage    = _currentPage;
                        spPager.BaseUrl        = PrettyUrl + "?swKeywordQuery=" + Keyword;
                    }
                    catch (Exception ex)
                    {
                        //capture exactly which keyword caused the error
                        log.ErrorFormat("Search with the following keyword returned an error: {0}", ex, Keyword);
                    }
                }
                else
                {
                    ResultsText = "No results found";
                    rptSearchResults.Visible = false;
                }
            }
            else
            {
                ResultsText = String.Empty;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            // Dictionary query parameters
            string expandParam = Strings.Clean(Request.QueryString["expand"], "A");
            //string languageParam = Strings.Clean(Request.QueryString["language"]);
            string languageParam = ""; //disable language selection by query parameter

            SearchString = Strings.Clean(Request.QueryString["search"]);
            //Create a safe search string to be passed to the URL
            string _safeSearchString = System.Web.HttpContext.Current.Server.UrlEncode(SearchString);

            _term    = Strings.Clean(Request.QueryString["term"]);
            _version = Strings.Clean(Request.QueryString["version"]);

            if (!String.IsNullOrEmpty(SearchString))
            {
                SearchString = SearchString.Replace("[", "[[]");
            }

            // Pager query parameter variables
            _currentPage    = Strings.ToInt(Request.Params["PageNum"], 1);
            _recordsPerPage = Strings.ToInt(Request.Params["RecordsPerPage"], 10);
            _offSet         = Strings.ToInt(Request.Params["OffSet"], 0);

            //Determine Language - set language related values
            string pageTitle;
            string buttonText;
            string language;
            string reDirect;

            MobileTermDictionary.DetermineLanguage(languageParam, out language, out pageTitle, out buttonText, out reDirect);
            _language = language;

            _dictionaryURL      = PageAssemblyContext.Current.PageAssemblyInstruction.GetUrl("CurrentUrl").ToString();
            litPageUrl.Text     = _dictionaryURL;
            litSearchBlock.Text = MobileTermDictionary.SearchBlock(_dictionaryURL, SearchString, language, pageTitle, buttonText, true);

            // Setup Pager variables
            int pager_StartRecord = 0;
            int pager_EndRecord   = 0;
            int pager_MaxRows     = 0;
            int pager_RowsPerPage = 10;

            TermDictionaryCollection dataCollection = null;

            if (!String.IsNullOrEmpty(SearchString)) // SearchString provided, do a term search
            {
                PageAssemblyContext.Current.PageAssemblyInstruction.AddUrlFilter(PageAssemblyInstructionUrls.AltLanguage, (name, url) =>
                {
                    url.QueryParameters.Add("search", _safeSearchString);
                });
                PageAssemblyContext.Current.PageAssemblyInstruction.AddUrlFilter("CurrentUrl", (name, url) =>
                {
                    url.QueryParameters.Add("search", _safeSearchString);
                });

                dataCollection = TermDictionaryManager.GetTermDictionaryList(language, SearchString, false, pager_RowsPerPage, _currentPage, ref pager_MaxRows);
            }
            else if (!String.IsNullOrEmpty(Term))
            {
                DisplayLanguage dl;
                if (Language.ToLower().Trim() == "spanish")
                {
                    dl = DisplayLanguage.Spanish;
                }
                else
                {
                    dl = DisplayLanguage.English;
                }

                TermDictionaryDataItem di = TermDictionaryManager.GetDefinitionByTermName(dl, Term, Version, 2);
                string itemDefinitionUrl  = DictionaryURL + "?cdrid=" + di.GlossaryTermID;
                Page.Response.Redirect(itemDefinitionUrl);
            }
            else if (!String.IsNullOrEmpty(expandParam)) // A-Z expand provided - do an A-Z search
            {
                _showDefinition = false;
                _expand         = true;
                if (expandParam.Length > 0)
                {
                    _expandText = expandParam.Substring(0, 1);
                    if (_expandText == "#")
                    {
                        _expandText = "[0-9]";
                    }
                }
                else
                {
                    _expandText = "";
                }

                PageAssemblyContext.Current.PageAssemblyInstruction.AddUrlFilter(PageAssemblyInstructionUrls.AltLanguage, (name, url) =>
                {
                    url.QueryParameters.Add("expand", _expandText);
                });
                PageAssemblyContext.Current.PageAssemblyInstruction.AddUrlFilter("CurrentUrl", (name, url) =>
                {
                    url.QueryParameters.Add("expand", _expandText);
                });

                dataCollection = TermDictionaryManager.GetTermDictionaryList(language, _expandText.Trim().ToUpper(), false, pager_RowsPerPage, _currentPage, ref pager_MaxRows);
            }

            if (dataCollection != null)
            {
                if (dataCollection.Count == 1 && !Expand) //if there is only 1 record - go directly to definition view
                {
                    //string itemDefinitionUrl = DictionaryURL + "?cdrid=" + dataCollection[0].GlossaryTermID + "&language=" + Language;
                    string itemDefinitionUrl = DictionaryURL + "?cdrid=" + dataCollection[0].GlossaryTermID;
                    Page.Response.Redirect(itemDefinitionUrl);
                }
                else // bind results
                {
                    resultListView.DataSource = dataCollection;
                    resultListView.DataBind();
                }

                SimplePager.GetFirstItemLastItem(_currentPage, pager_RowsPerPage, pager_MaxRows, out pager_StartRecord, out pager_EndRecord);
                spPager.RecordCount    = pager_MaxRows;
                spPager.RecordsPerPage = pager_RowsPerPage;
                spPager.CurrentPage    = _currentPage;
                if (Expand)
                {
                    spPager.BaseUrl = DictionaryURL + "?expand=" + _expandText;
                }
                else
                {
                    spPager.BaseUrl = DictionaryURL + "?search=" + _safeSearchString;
                }

                if (IsSpanish)
                {
                    spPager.PagerStyleSettings.NextPageText = "Siguiente&nbsp;&gt;";
                    spPager.PagerStyleSettings.PrevPageText = "&lt;&nbsp;Anterior";
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Helper method to setup the pager
        /// </summary>
        protected virtual void SetupPager(int recordsPerPage, int totalRecordCount, Dictionary <string, string> urlFilters)
        {
            SimplePager pager = new SimplePager();

            pager.RecordCount    = totalRecordCount;
            pager.RecordsPerPage = recordsPerPage;
            pager.CurrentPage    = CurrentPage;
            pager.PageParamName  = "page";
            pager.PagerStyleSettings.SelectedIndexCssClass = "pager-SelectedPage";
            pager.BaseUrl = PageInstruction.GetUrl(PageAssemblyInstructionUrls.PrettyUrl).ToString();

            string searchQueryParams = string.Empty;

            if (this.SearchList.SearchType.ToLower() == "keyword" || this.SearchList.SearchType.ToLower() == "keyword_with_date")
            {
                searchQueryParams = "?keyword=" + Server.HtmlEncode(KeyWords);
            }
            if (this.SearchList.SearchType.ToLower() == "date" || this.SearchList.SearchType.ToLower() == "keyword_with_date")
            {
                if (string.IsNullOrEmpty(searchQueryParams))
                {
                    searchQueryParams = "?";
                }
                else
                {
                    searchQueryParams += "&";
                }
                if (StartDate != DateTime.MinValue && EndDate != DateTime.MaxValue)
                {
                    searchQueryParams += string.Format("startMonth={0}&startyear={1}&endMonth={2}&endYear={3}", StartDate.Month, StartDate.Year, EndDate.Month, EndDate.Year);
                }
                else
                {
                    searchQueryParams += "startMonth=&startyear=&endMonth=&endYear=";
                }
            }

            foreach (KeyValuePair <string, string> entry in urlFilters)
            {
                if (string.IsNullOrEmpty(searchQueryParams))
                {
                    searchQueryParams = "?";
                }
                else
                {
                    searchQueryParams += "&";
                }

                searchQueryParams += string.Format("filter[{0}]={1}", entry.Key, entry.Value);
            }


            pager.BaseUrl += searchQueryParams;

            Controls.Add(pager);

            // check for existence of previous and and next urls
            string prevUrl = pager.GetPrevLinkUrl();
            string nextUrl = pager.GetNextLinkUrl();

            if (prevUrl != null)
            {
                this.PageInstruction.AddUrlFilter("RelPrev", (name, url) =>
                {
                    url.SetUrl(prevUrl);
                });
            }

            if (nextUrl != null)
            {
                this.PageInstruction.AddUrlFilter("RelNext", (name, url) =>
                {
                    url.SetUrl(nextUrl);
                });
            }
        }
        public ActionResult Feedback(SimplePager<ScoreboardFeedback> model)
        {
            if (model.ItemToDelete > 0)
            {
                Library.ViewModel.ErrorServerViewModel.DeleteFeedbackItem(model.ItemToDelete);
                model.NumberOfRecords--;
                model.NumberOfPages = (int)Math.Ceiling((double)model.NumberOfRecords / 20);
            }
            else if (model.ItemToArchive > 0)
            {
                Library.ViewModel.ErrorServerViewModel.ArchiveFeedbackItem(model.ItemToArchive);
                model.NumberOfRecords--;
                model.NumberOfPages = (int)Math.Ceiling((double)model.NumberOfRecords / 20);
            }

            var output = FillFeedbackModel(model);
            return View(output);
        }
 private GenericSingleModel<SimplePager<ScoreboardFeedback>> FillFeedbackModel(SimplePager<ScoreboardFeedback> model)
 {
     for (var i = 1; i <= model.NumberOfPages; i++)
         model.Pages.Add(new SelectListItem
         {
             Text = i.ToString(),
             Value = i.ToString(),
             Selected = i == model.CurrentPage
         });
     var output = new GenericSingleModel<SimplePager<ScoreboardFeedback>> { Model = model };
     output.Model.Items = Library.ViewModel.ErrorServerViewModel.GetFeedbackItems((model.CurrentPage - 1) * 20, 20);
     return output;
 }
 private GenericSingleModel<SimplePager<Library.Classes.Error.Classes.Error>> FillErrorModel(SimplePager<Library.Classes.Error.Classes.Error> model)
 {
     for (var i = 1; i <= model.NumberOfPages; i++)
         model.Pages.Add(new SelectListItem
         {
             Text = i.ToString(),
             Value = i.ToString(),
             Selected = i == model.CurrentPage
         });
     var output = new GenericSingleModel<SimplePager<Library.Classes.Error.Classes.Error>> { Model = model };
     output.Model.Items = Library.Classes.Error.ErrorDatabaseManager.GetErrorObjects((model.CurrentPage - 1) * 20, 20);
     return output;
 }
        public ActionResult Feedback()
        {
            var model = new SimplePager<ScoreboardFeedback>();
            model.CurrentPage = 1;
            model.NumberOfRecords = Library.ViewModel.ErrorServerViewModel.GetNumberOfFeedbackItems();
            model.NumberOfPages = (int)Math.Ceiling((double)model.NumberOfRecords / 20);

            var output = FillFeedbackModel(model);
            return View(output);
        }
        public ActionResult Errors(SimplePager<Library.Classes.Error.Classes.Error> model)
        {
            if (model.DeleteAll)
            {

                model.CurrentPage = 1;
                model.NumberOfRecords = model.NumberOfRecords - Library.Classes.Error.ErrorDatabaseManager.DeleteAllErrorObjects();
                model.NumberOfPages = 1;
            }
            else if (model.ItemToDelete > 0)
            {
                Library.Classes.Error.ErrorDatabaseManager.DeleteErrorObject(model.ItemToDelete);
                model.NumberOfRecords--;
                model.NumberOfPages = (int)Math.Ceiling((double)model.NumberOfRecords / 20);
            }

            var output = FillErrorModel(model);
            return View(output);
        }
        public ActionResult Errors()
        {
            var model = new SimplePager<Library.Classes.Error.Classes.Error>();
            model.CurrentPage = 1;
            model.NumberOfRecords = Library.Classes.Error.ErrorDatabaseManager.GetNumberOfExceptions();
            model.NumberOfPages = (int)Math.Ceiling((double)model.NumberOfRecords / 20);

            var output = FillErrorModel(model);
            return View(output);
        }
 private GenericSingleModel<SimplePager<ContactLeague>> FillLeagueContacts(SimplePager<ContactLeague> model)
 {
     for (var i = 1; i <= model.NumberOfPages; i++)
         model.Pages.Add(new SelectListItem
         {
             Text = i.ToString(),
             Value = i.ToString(),
             Selected = i == model.CurrentPage
         });
     var output = new GenericSingleModel<SimplePager<ContactLeague>> { Model = model };
     output.Model.Items = Library.Classes.Admin.Admin.Admin.GetContactLeague((model.CurrentPage - 1) * 20, 20);
     return output;
 }
        public ActionResult LeagueContacts(SimplePager<ContactLeague> model)
        {
            if (model.ItemToDelete > 0)
            {
                Library.Classes.Admin.Admin.Admin.DeleteContactLeague(model.ItemToDelete);
                model.NumberOfRecords--;
                model.NumberOfPages = (int)Math.Ceiling((double)model.NumberOfRecords / 20);
            }

            var output = FillLeagueContacts(model);
            return View(output);
        }
        public ActionResult LeagueContacts()
        {
            var model = new SimplePager<ContactLeague>();
            model.CurrentPage = 1;
            model.NumberOfRecords = Library.Classes.Admin.Admin.Admin.GetContactLeagueCount();
            model.NumberOfPages = (int)Math.Ceiling((double)model.NumberOfRecords / 20);

            var output = FillLeagueContacts(model);
            return View(output);
        }