private void BindSnippet(object source, EventArgs e)
        {
            Label snippet = (Label)source;

            Service.ResultElement elem = GetResultElement(snippet.NamingContainer);
            snippet.Text = elem.snippet;
        }
        private void BindUrl(object source, EventArgs e)
        {
            Label url = (Label)source;

            Service.ResultElement elem = GetResultElement(url.NamingContainer);
            url.Text = elem.URL;
        }
        private void BindLink(object source, EventArgs e)
        {
            HyperLink link = (HyperLink)source;

            Service.ResultElement elem = GetResultElement(link.NamingContainer);
            link.Text        = elem.title;
            link.NavigateUrl = elem.URL;
        }
 /// <summary>
 /// Returns a valid Service.ResultElement instance
 /// </summary>
 /// <param name="index">Index to help create title and url</param>
 /// <returns>Fully populated Service.ResultElement instance</returns>
 public static Service.ResultElement GetResultElement(int index)
 {
     Service.ResultElement elem = new Service.ResultElement();
     elem.title      = "Result Control " + index;
     elem.URL        = "http://apress.com/resultcontrol" + index;
     elem.summary    = "Summary";
     elem.snippet    = "Snippet";
     elem.hostName   = "apress";
     elem.cachedSize = "2k";
     elem.relatedInformationPresent = false;
     elem.directoryTitle            = "Test";
     elem.directoryCategory         = ResultDummyDataSource.GetDirectoryCategory();
     return(elem);
 }
        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;
            }
        }