Thursday, September 17, 2015

Drop Down List populated with Dictionary items

<asp:DropDownList ID="ddlMediaTypes" DataTextField="Name" DataValueField="ID" runat="server" AutoPostBack="true" OnTextChanged="ddlMediaTypes_TextChanged"></asp:DropDownList>


using Sitecore.Globalization.Translate

case "_template":
                        List<LogbookMediaType> mediaTypes = new List<LogbookMediaType>();

                        foreach (FacetValue value in category.Values)
                        {
                            ID scId = new ID(value.Name);

                            if (scId == ILogbookArticleEntryConstants.TemplateId)
                                mediaTypes.Add(new LogbookMediaType(Translate.TextByDomain(DictionaryDomains.DefaultDictionary, "Articles"), new Guid(value.Name).ToString(), value.AggregateCount.ToString()));
                            else if (scId == ILogbookPhotoEntryConstants.TemplateId)
                                mediaTypes.Add(new LogbookMediaType(Translate.TextByDomain(DictionaryDomains.DefaultDictionary, "Photo"), new Guid(value.Name).ToString(), value.AggregateCount.ToString()));
                            else if (scId == ILogbookVideoEntryConstants.TemplateId)
                                mediaTypes.Add(new LogbookMediaType(Translate.TextByDomain(DictionaryDomains.DefaultDictionary, "Video"), new Guid(value.Name).ToString(), value.AggregateCount.ToString()));
                            else if (scId == ILogbookCampaignEntryConstants.TemplateId)
                                mediaTypes.Add(new LogbookMediaType(Translate.TextByDomain(DictionaryDomains.DefaultDictionary, "Campaign"), new Guid(value.Name).ToString(), value.AggregateCount.ToString()));
                        }

                        ddlMediaTypes.DataSource = mediaTypes.Select(x => new
                        {
                            Name = string.Format("{0} ({1})", x.Name, x.AggregateCount),
                            ID = new Guid(x.Value).ToString()
                        });

                        ddlMediaTypes.DataBind();
                        ddlMediaTypes.Items.Insert(0, new System.Web.UI.WebControls.ListItem(Model.AllMediaPlaceholderText, "all"));

                        if (SearchQueryBuilder.MediaTypeFilterOption.HasValue)
                            ddlMediaTypes.SelectedValue = SearchQueryBuilder.MediaTypeFilterOption.Value.ToString();


                        break

No comments:

Post a Comment