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);
}
}
}