ASP.NET Tag cloud / Облако тегов на ASP.NET

ASP.NET Tag cloud / Облако тегов на ASP.NET

Для облегчения своей (и вашей теперь) жизни написал класс, который поможет сформировать облако тегов. Код для 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)

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Об авторе блога

Адель Шигабутдинов (веб-разработчик)