/// <summary> /// Returns a Service.GoogleSearchResult data set that is valid /// according to web service guidelines /// </summary> /// <param name="pageSize">page size of the Service.GoogleSearchResult set</param> /// <returns>Service.GoogleSearchResult instance with Service.resultElement /// entries present according to page size</returns> public static Service.GoogleSearchResult GetGoogleSearchResults(int pageSize) { Service.GoogleSearchResult result = new Service.GoogleSearchResult(); result.estimatedTotalResultsCount = TotalResultsCount; result.estimateIsExact = true; result.documentFiltering = false; result.startIndex = 1; result.endIndex = pageSize; result.searchTime = 0.09; result.searchQuery = "Result Control"; result.searchComments = ""; result.searchTips = ""; result.directoryCategories = new Service.DirectoryCategory[1]; result.directoryCategories[0] = ResultDummyDataSource.GetDirectoryCategory(); // fill up 10 result elements result.resultElements = new Service.ResultElement[pageSize]; for (int i = 0; i < pageSize; i++) { result.resultElements[i] = GetResultElement(i); } return(result); }
private void HandleSearch() { Service.GoogleSearchResult result = Service.SearchUtil.SearchGoogleService( Query, StartIndex, PageSize, Filtering); OnGoogleSearched(new GoogleSearchedEventArgs(result)); this.DataSource = result; this.DataBind(); }
private void HandleSearch() { // check to see if search was handled on this postback // (this prevents TextChanged and ButtonClicked from // double-tapping Google web service for the same query) if (searchHandled == true) { return; } // check for redirect of query processing to Google web site if (RedirectToGoogle == true) { this.Page.Response.Redirect( GoogleWebSearchUrl + "?q=" + HttpContext.Current.Server.UrlEncode(Query), true); } if (ResultControl.Length != 0) { // lookup the Result control we are linked to // and get the PageSize and Filtering property values Result resControl = (Result)Page.FindControl(ResultControl); int pageSize = resControl.PageSize; bool filtering = resControl.Filtering; // get search results from Google web service proxy Service.GoogleSearchResult result = Service.SearchUtil.SearchGoogleService( Query, 0, pageSize, filtering); // raise search results for any interested parties as well OnGoogleSearched(new GoogleSearchedEventArgs(result)); // databind search results with the Result control // we are linked with resControl.DataSource = result; resControl.DataBind(); } // set bool that tells us the search has been handled on this // postback searchHandled = true; }
private void BindResultHeader(object source, EventArgs e) { Label header = (Label)source; Result resultControl = GetResultControl(header); Service.GoogleSearchResult result = GetResult(header.NamingContainer); StringBuilder section = new StringBuilder(); // get ResouceManager for localized format strings ResourceManager rm = ResourceFactory.Manager; // Searched for: <searchQuery> section.Append( String.Format( rm.GetString("ResultStatusTemplate.SearchFor"), result.searchQuery)); section.Append("<br>"); // Result <StartIndex+1> - <EndIndex+1> of about // <TotalResultsCount> records // (accounting for zero based index) section.Append( String.Format( rm.GetString("ResultStatusTemplate.ResultAbout"), resultControl.StartIndex + 1, resultControl.EndIndex + 1, resultControl.TotalResultsCount)); section.Append("  "); // Query took about <searchTime> seconds. section.Append( String.Format( rm.GetString("ResultStatusTemplate.QueryTook"), System.Math.Round(result.searchTime, 2))); section.Append("<br>"); header.Text = section.ToString(); }
/// <summary> /// Constructor for GoogleSearchEventArgs /// </summary> /// <param name="result">Results from search of Google web service</param> public GoogleSearchedEventArgs(Service.GoogleSearchResult result) { this.result = result; }
private void CreateControlHierarchy(bool dataBind) { Service.GoogleSearchResult result = null; // Result items items = new ArrayList(); int count = 0; if (dataBind == true) { if (DataSource == null) { return; } result = (Service.GoogleSearchResult)DataSource; Query = result.searchQuery; StartIndex = result.startIndex - 1; // set ViewState values for read-only props ViewState["TotalResultsCount"] = result.estimatedTotalResultsCount; ViewState["EndIndex"] = result.endIndex - 1; count = result.resultElements.Length; } else { object temp = ViewState["ResultItemCount"]; if (temp != null) { count = (int)temp; } } if (HeaderTemplate != null) { ResultItem headerItem = CreateResultItem(-1, ResultItemType.Header, false, null); items.Add(headerItem); } ResultItem statusItem = CreateResultItem(-1, ResultItemType.Status, dataBind, result); items.Add(statusItem); // loop through and create ResultItem controls for each of the // result elements from the Google web service result ResultItemType itemType = ResultItemType.Item; for (int i = 0; i < count; i++) { if (separatorTemplate != null) { ResultItem separator = CreateResultItem(-1, ResultItemType.Separator, false, null); items.Add(separator); } Service.ResultElement resultElem = null; if (dataBind == true) { resultElem = result.resultElements[i]; } ResultItem item = CreateResultItem(i, itemType, dataBind, resultElem); items.Add(item); // swap between item and alternatingitem types if (itemType == ResultItemType.Item) { itemType = ResultItemType.AlternatingItem; } else { itemType = ResultItemType.Item; } } // display pager if allowed by user and if results // are greater than a page in length if (DisplayPager == true && TotalResultsCount > PageSize) { ResultItem pager = CreatePagerResultItem(dataBind, result); items.Add(pager); } if (FooterTemplate != null) { ResultItem footer = CreateResultItem(-1, ResultItemType.Footer, false, null); items.Add(footer); } if (dataBind) { ViewState["ResultItemCount"] = count; } }