using System;
using System.Collections.Generic;
using System.Net.Mail;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ExWeb
{
public partial class Mod_Links : Mod
{
public static string Help_Description =
"Fasst alle Links auf einer Seite zusammen"
+ "Voraussetzung: die Links müssen als ASPX-Steuerelement kodiert sein:"
+ "<asp:Hyperlink>...</asp:Hyperlink>";
public static string[][] Help_Attributes = new string[][]
{
// Attribut, Wert, DefaultWert, Optional, Hilfe, Beispiel
new string[] {"-", "-", "-","-","-", "-" },
};
SortedList<string, string> list = new SortedList<string, string>();
void CollectControls(ControlCollection c)
{
// Response.Write("<br/>" + c.Count.ToString() + "<br/>");
for (int i = 0; i < c.Count; i++)
{
// Response.Write(i + ":" + c[i].GetType().ToString() + "<br/>");
switch (c[i].GetType().ToString())
{
case "System.Web.UI.WebControls.HyperLink":
HyperLink l = (HyperLink)c[i];
string Url = l.NavigateUrl;
string Text = l.Text;
if (!list.ContainsKey(Url))
list.Add(Url, Text);
break;
}
if (c[i].HasControls()) CollectControls(c[i].Controls);
}
}
void ShowControls()
{
for (int i = 0; i < list.Count; i++)
{
HyperLink hl = new HyperLink();
hl.CssClass = "externallink";
string Url = list.Keys[i];
string Text = list.Values[i];
hl.NavigateUrl = list.Keys[i];
if (PlaceHolder_Links.Controls.Count > 0)
PlaceHolder_Links.Controls.Add(new LiteralControl("<br/>"));
PlaceHolder_Links.Controls.Add(hl);
if (Text == "") Text = Url;
PlaceHolder_Links.Controls.Add(new LiteralControl(" "+Url));
}
}
protected void Page_LoadComplete(object sender, EventArgs e)
{
SetPanelLayout(this.Controls);
}
protected new void Page_Load(object sender, EventArgs e)
{
Page.LoadComplete += new EventHandler(Page_LoadComplete);
CollectControls(this.Page.Controls);
ShowControls();
}
}
}