Mercurial > pub > bltoolkit
diff Demo/Asp.Net/Web/Controls/BreadCrumbControl.ascx.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Demo/Asp.Net/Web/Controls/BreadCrumbControl.ascx.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,86 @@ +using System; +using System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; + +using PetShop.BusinessLogic; + +namespace PetShop.Web +{ + public partial class BreadCrumbControl : System.Web.UI.UserControl + { + protected void Page_Load(object sender, EventArgs e) + { + string categoryId = Request.QueryString["categoryId"]; + + if (!string.IsNullOrEmpty(categoryId)) + { + ProcessHomePageLink(); + + // Process Product page link + // + HtmlAnchor lnkProducts = new HtmlAnchor(); + + lnkProducts.InnerText = new ProductManager().GetCategory(categoryId).Name; + lnkProducts.HRef = string.Format("~/Products.aspx?page=0&categoryId={0}", categoryId); + + plhControl.Controls.Add(lnkProducts); + + string productId = Request.QueryString["productId"]; + + if (!string.IsNullOrEmpty(productId)) + { + // Process Item page link + // + plhControl.Controls.Add(GetDivider()); + + HtmlAnchor lnkItemDetails = new HtmlAnchor(); + + lnkItemDetails.InnerText = new ProductManager().GetProduct(productId).Name; + lnkItemDetails.HRef = string.Format("~/Items.aspx?categoryId={0}&productId={1}", categoryId, productId); + + plhControl.Controls.Add(lnkItemDetails); + } + } + else + { + int len = Request.Url.Segments.Length; + + if (len >= 2 && Request.Url.Segments[len-2].TrimEnd('/', '\\').ToLower() == "admin") + { + ProcessHomePageLink(); + + HtmlAnchor a = new HtmlAnchor(); + + a.InnerText = Request.Url.Segments[len - 1].Split('.')[0]; + a.HRef = Request.Url.PathAndQuery; + + plhControl.Controls.Add(a); + } + } + } + + private void ProcessHomePageLink() + { + HtmlAnchor lnkHome = new HtmlAnchor(); + + lnkHome.InnerText = "Home"; + lnkHome.HRef = "~/Default.aspx"; + + plhControl.Controls.Add(lnkHome); + plhControl.Controls.Add(GetDivider()); + } + + /// <summary> + /// Create a breadcrumb nodes divider + /// </summary> + /// <returns>Literal control containing formatted divider</returns> + private Literal GetDivider() + { + Literal ltlDivider = new Literal(); + + ltlDivider.Text = " > "; + + return ltlDivider; + } + } +} \ No newline at end of file