HTML Tree Control
От: Ярослав Говорунов Украина http://www.helicontech.com
Дата: 18.05.02 20:10
Оценка: 330 (12) +3
Статья:
HTML Tree Control
Автор(ы): Ярослав Говорунов
Дата: 5.04.2002
Древовидное меню на базе HTML.


Авторы:
Ярослав Говорунов

Аннотация:
Древовидное меню на базе HTML.
WBR,
Yaroslav Govorunov
А можно ли этот контрол вставить в таблицы?
От: stogov  
Дата: 07.03.03 06:11
Оценка:
Т.е. я хочу использовать его на странице с табличной версткой. Подскажите, как это можно реализовать? (XML — не знаю, с ASP только начинаю знакомиться)
Ярослав, у вас нет компонента для работы с БД?
От: ewew  
Дата: 02.11.02 00:29
Оценка:
Чтобы не из XML грузить данные... или подскажите как модифицировать
Mozilla 1
От: Rin  
Дата: 19.06.02 20:43
Оценка:
В мозиле дерево работает весьма своеобразно. А почему асп а не пхп?
... а права?
От: Rin  
Дата: 17.06.02 02:59
Оценка:
А как насчёт прав на использование? <I>не может быть воспроизведен</I>?
.... исходники
От: Adward Россия http://www.sprut.ru
Дата: 19.05.02 20:10
Оценка:
Скажите пожалуйста, а где я могу взять исходники менюхи вот такой?
Re: Mozilla 1
От: Slov Украина http://www.helicontech.com
Дата: 19.06.02 22:32
Оценка:
Своеобразно — это в смысле плоско? Ну тогда так и задумывалось. Точно так же оно работает в опере и NN, а динамика будет только на DHTML (IE). Можно сделать вторую реализацию под DOM, но это уже будет не то, да и лень матушка... :-)
ASP? Ну, во первых у нас сайт на ASP. Во вторых, по большому счету, оно на XSLT, а в то время когда оно писалось в PHP с XSLT было мягко говоря не очень. Ну и в третьих ... не люблю я его :-)
WBR,
Yaroslav Govorunov
Re: ... а права?
От: Slov Украина http://www.helicontech.com
Дата: 17.06.02 05:46
Оценка:
Давай так: ты предлагаешь текст Copyright, так чтоб другие сайты не могли перепечатывать наши материалы, но и пользователям было хорошо... и мы с удовольствием его поменяем.
А использовать HTML Tree Control конечно можно на здоровье где угодно (как говорится в не коммерческих и коммерческих целях) :-)
WBR,
Yaroslav Govorunov
Re: .... исходники
От: Slov Украина http://www.helicontech.com
Дата: 19.05.02 20:47
Оценка:
В смысле? Чем не устраивают те исходники, которые прилагаються к этой статье? :-)
WBR,
Yaroslav Govorunov
Re: .... исходники
От: Webgear  
Дата: 05.12.02 18:59
Оценка:
Nu v smysle ishodniki samogo kontrola
Re: HTML Tree Control
От: Shire  
Дата: 17.12.03 06:00
Оценка:
Здравствуйте, Ярослав Говорунов

Замечательная идея.
Только вот есть побочный эффект — дерево иногда глючит.
Немного подумав над фактами, заметил в taskbar'е открытый сайт RSDN.

Видимо, имена IFRAME'ов в нём совпадали с моими, и при попытке загрузить ветвь, она грузилась во фрейм RSDN

Так что могу порекомендовать пользователям заменять неизменную часть имени fra на что-то своё.
Re: HTML Tree Control
От: Аноним  
Дата: 05.04.04 07:43
Оценка: -1
Здравствуйте, Ярослав Говорунов, Вы писали:

ЯГ>Статья:



ЯГ>Авторы:

ЯГ> Ярослав Говорунов

ЯГ>Аннотация:

ЯГ>Древовидное меню на базе HTML.

А как насчет исходников aspx? Сайт уже перешел на aspx, да и дерево, вижу, тоже на aspx переписано, а вот исходники к статье на asp.
Re[2]: HTML Tree Control
От: avg34  
Дата: 22.03.05 20:40
Оценка:
А>А как насчет исходников aspx? Сайт уже перешел на aspx, да и дерево, вижу, тоже на aspx переписано, а вот исходники к статье на asp.

Да, Ярослав, проблема актуальна.
Пару дней изголялся над ним — пытался C# его перенести, но ничего
путного не получилось. Может ты иль кто другой уже пытались на aspx
это дерево перетащить?
Буду премного благодарен, если поможешь, чем сможешь..
Заранее спасибо.
З.Ы.: мыло твоё rsdn'овское чё-т не работает
Re[3]: HTML Tree Control
От: woto Россия  
Дата: 07.04.05 11:21
Оценка:
Здравствуйте, avg34, Вы писали:

А>>А как насчет исходников aspx? Сайт уже перешел на aspx, да и дерево, вижу, тоже на aspx переписано, а вот исходники к статье на asp.


Присоединяюсь к просьбе.
Re[4]: HTML Tree Control
От: woto Россия  
Дата: 07.04.05 16:55
Оценка: 3 (1)
Здравствуйте, woto, Вы писали:

W>Здравствуйте, avg34, Вы писали:


А>>>А как насчет исходников aspx? Сайт уже перешел на aspx, да и дерево, вижу, тоже на aspx переписано, а вот исходники к статье на asp.


W>Присоединяюсь к просьбе.


Во XLoadTree http://webfx.eae.net/dhtml/xloadtree/xloadtree.html
html xml xsl tree дерево load догрузка дозагрузка подгрузка javascript
Re[2]: ... а права?
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 10.04.05 20:28
Оценка:
Здравствуйте, Slov, Вы писали:

S>Давай так: ты предлагаешь текст Copyright, так чтоб другие сайты не могли перепечатывать наши материалы, но и пользователям было хорошо... и мы с удовольствием его поменяем.


"Не может быть воспроизведён" -> "Не может быть опубликован в виде контента"
----------------------------------------------------------------------------------------------
Rentaguru
Re[2]: HTML Tree Control
От: Аноним  
Дата: 13.10.05 12:32
Оценка:
Добрый день!

Все конечно супер, но может кто-нибудь подскажет как сделать отложенную загрузку не с XML файла а скажем из БД?
Re[3]: HTML Tree Control
От: woto Россия  
Дата: 14.10.05 03:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!


А>Все конечно супер, но может кто-нибудь подскажет как сделать отложенную загрузку не с XML файла а скажем из БД?

А в чем сложность? Определенно сформированный урл дает определенно сформированный xml на который ссылается какая-то ветвь. Вот код, не претендую на красивость, точнее совсем некрасивый, т.к. написал его после 2-х месяцев изучения PHP, но у меня успешно работает уже пол года. Тебе может не подойти, т.к. некоторые изменения вносил в само дерево, но сама идея...


<?
require("fm_config.php");

// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");
header("Content-Type: application/xml");

class XMLTreeBuilder {

        function PrintXml()
        {
                echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?>";
        }

        function PrintXMLHeader()
        {
                echo "<tree>\n";
        }

        function PrintXmlFooter()
        {
                echo "</tree>";
        }

        function PrintEmptyTree()
        {
                echo "<tree/>";
        }

        function PrintXmlItem($title, $src, $icon, $openIcon, $action, $target, $sem
ipath, $myid)
        {
                print "<tree text=\"$title\" ";
                if(isset($semipath))
                print "semipath=\"$semipath\" ";
                if(isset($action))
                print "action=\"$action\" ";
                if(isset($target))
                print "target=\"$target\" ";
                if(isset($src))
                print "src=\"$src\" ";
                if(isset($icon))
                print "icon=\"$icon\" ";
                if(isset($openIcon))
                print "openIcon=\"$openIcon\" ";
                if(isset($myid))
                print "id=\"$myid\" ";
                print "/>\n";
        }
}

XMLTreeBuilder:: PrintXml();

// -- tree
if(!$link=mysql_connect($dbhost,$dbuser,$dbpass))
{
        printf("Ошибка при соединении с MySQL !\n");
        exit();
}
if (!mysql_select_db($dbname, $link)) {
        printf("Ошибка базы данных !");
        exit();
}

global $link;
if(isset($_GET["load"]))
{
        $lvl = $_GET["load"];
        $sSQL = "SELECT id, action, icon, iconOpen, hasChild, title, parentid FROM C
atalog WHERE parentid = " . $lvl . " ORDER BY title";
        $result = mysql_query($sSQL, $link);
        if (mysql_num_rows($result) > 0) {
                XMLTreeBuilder::PrintXMLHeader();
                while ( $row = mysql_fetch_array($result) ) {
                        if($row["hasChild"] == 1)
                        {
                                XMLTreeBuilder::PrintXmlItem($row["title"], "s.tree.
xml.php?load=" . $row["id"], $row["icon"], $row["iconOpen"], "glob(this);", null, $r
ow["action"], $row["id"]);
                        }
                        else
                        {
                                XMLTreeBuilder::PrintXmlItem($row["title"], null, $r
ow["icon"], $row["iconOpen"], "glob(this);", null, $row["action"], $row["id"]);
                        }
                }
                XMLTreeBuilder::PrintXmlFooter();
        }
        else
        {
                XMLTreeBuilder::PrintEmptyTree();
        }
}

mysql_close($link);
?>
Re: HTML Tree Control
От: anonymous Россия http://denis.ibaev.name/
Дата: 19.10.05 05:53
Оценка:
Здравствуйте, Ярослав Говорунов, Вы писали:

ЯГ>Статья:

ЯГ>HTML Tree Control
Автор(ы): Ярослав Говорунов
Дата: 5.04.2002
Древовидное меню на базе HTML.

ЯГ>Авторы:
ЯГ> Ярослав Говорунов
ЯГ>Аннотация:
ЯГ>Древовидное меню на базе HTML.

местные наработки:
http://rsdn.ru/Forum/Message.aspx?mid=897778&amp;only=1
Автор: Дм.Григорьев
Дата: 13.11.04

http://rsdn.ru/Forum/Message.aspx?mid=897783&amp;only=1
Автор: Дм.Григорьев
Дата: 13.11.04
Re: HTML Tree Control
От: Аноним  
Дата: 19.10.05 16:25
Оценка:
Здравствуйте Ярослав!

Я скачал исходники и попробовал переделать код HTML Tree Control на Java. Однако столкнулся с проблемой дозагрузки данных. У меня при нажатии на + элемента, который обозначен как дозареждаемый, появляется <DIV> таг с надписью на нем и больше ничего не происходит, т.е. подузлы не загружаются. После проверки кода было установлено что node параметр с правильным идентификатором передается как GET параметр заявки. Веб страница (в данной случае JSP) извлекает этот параметр и подает его как root параметр для трансформации. После происходит трансформация и код (HTML) который при этом генерируется абсолютно идентичен генерированному первоначально.

Насколько я успел понять эта проверка (loadToc.xsl) определяет нужно ли догрузить узлы (точнее @id=$root"):

<xsl:when test="descendant::node[@id=$selID] or descendant::node[@href=$selPath] or @id=$root">

Затем исполняется (точнее должен исполниться) код <xsl:call-template name="LoadAndShow"/> который и должен загрузить подузлы дозареждаемого узла. По моим наблюдениям этот код не исполняется, а вместо этого исполняется следующий шаблон (<xsl:call-template name="DontLoad"/>).

Если можно объясните принцип дозагрузки данных, у меня такое чувство как будто я что-то пропустил.

Я трансформировал код страницы default.jsp в эквивалентный код на Java. Однако я не уверен последний ли это код, так как я заметил разницу между кодом статьи и кодом который используется на сайте. Вышлите пожалуйста (или опубликуйте) последнюю версию файла toc\default.asp и скриптов...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.