using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI.WebControls; using System.Web.UI; namespace OrganizerLib.BackButton { /// /// Autor: Marcin Karczewski /// public class BackButton : Button { /// /// Tworzy przycisk /// public BackButton() { this.Click += new EventHandler(BackButton_Click); } /// /// Metoda służy do przejścia do strony powrotnej bądź do węzła nadrzędnego w mapie strony /// /// Strona, której propercja Request dostarcza nam parametrów public static void GoBack(Page page) { if (page.Request["BackURL"] == null && SiteMap.CurrentNode != null) { SiteMapNode node = SiteMap.CurrentNode; SiteMapNode b_node = node.ParentNode; if (b_node != null) page.Response.Redirect(b_node.Url); } else { if (page.Request["BackURL"] != null) page.Response.Redirect(page.Request["BackURL"].ToString()); } } /// /// Zwraca parametr z linkiem powrotnym do przetwarzanej strony /// /// Przetwarzana strona /// Link powrotny public static string GetBackUrl(Page page) { String url = page.Request.RawUrl; int i = url.IndexOf("BackURL=", 0); if (i > 0) { url = url.Substring(0, i-1); } return "BackURL=" + page.ResolveUrl(url); } /// /// Obsługa kliknięcia przycisku /// /// /// void BackButton_Click(object sender, EventArgs e) { GoBack(this.Page); } } }