Для облегчения своей (и вашей теперь) жизни написал класс, который поможет сформировать облако тегов. Код для ASP.NET 2.0. Выкладываю Open Source, под лицензией Apache 2.0 http://www.apache.org/licenses/LICENSE-2.0
Чем он отличается от остальных "Tag cloud maker"-ов? Почти все готовые компоненты, какие я видел, требуют чтобы в них присылали данные вида тег-вес, тоесть нужно было сначала самому посчитать сколько раз повторяется один и тот же тег, и только потом отправлять эти данные в контрол. Вобщем, ерунда. В мой класс вы просто отправляете всю кучу тегов сразу, а на выходе получаете красивое облачко тегов. Вид можно настроить через CSS.
Если будете выкладывать куда-то, пожалуйста ставьте ссылочку на http://www.drfaust.ru
Как пользоваться: скопировать класс PortalTagCloud.cs в App_Code\, файл Cloud.css куда вам нужно.
На ASPX странице разместить Label1.
В коде: сформировать из базы данных, или из XML (или где вы там храните свои данные) string, в котором через запятую идут подряд все теги (неотсортированные, повторяющие, просто "как есть"), отправить эти данные в PortalClass.MakeCloud() и получить готовое облако тегов.
Вот более подробный пример кода:
string GetAllTags()
{ /// Забираем все теги
SqlConnection SQLDB;
SqlCommand SQLDBCMD;
SqlDataReader SqlR;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
SQLDB = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SQLDBCMD = new SqlCommand("SELECT post_tags FROM w20_posts", SQLDB);
SQLDB.Open();
SqlR = SQLDBCMD.ExecuteReader();
while (SqlR.Read())
{
sb.Append(SqlR["post_tags"]+",");
}
SqlR.Close();
SQLDB.Close();
return sb.ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
lblCloud.Text = PortalTagCloud.MakeCloud(GetAllTags(),"/portal/tag.aspx?s=");
}
Качать вот тут:
cloud.css (633,00 bytes)
PortalTagCloud.cs (7,52 kb)