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(); }
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; }
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 >"; spPager.PagerStyleSettings.PrevPageText = "< Anterior"; } } }
/// <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); }