powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Редактирование TreeView пользователем
18 сообщений из 18, страница 1 из 1
Редактирование TreeView пользователем
    #39494694
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Нужно сделать подобное http://www.obout.com/t2/ht_EditableNodes.aspx

Пока не могу с ориентироваться с какой стороны нужно зайти.

Ссылки и примеры приветствуются.
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494824
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere...Ссылки и примеры приветствуются.
Не приветствуются здесь ссылки, хотя и не воспрещено. Гораздо интереснее, чтобы здесь был ответ на сабж. Лучше оригинальный. ;)
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494861
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

Покажи чё сделал, чё пытался сделать, чё не получилось.
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494891
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt, показывать нечего...
Изучение проблемы наталкивает на мысль, что изменение в TreeView нужно делать на скрипте, со стороны клиента, с последующей отправкой запроса на изменение в бд .
Вопрос как прикрутить onClic и dblclick в ветку и лист дерева?
По событию можно вычислить id элемента на странице и соответственно покрутить его как нужно.
Вот кусок кода сгенерированногоASP

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<table cellpadding="0" cellspacing="0" style="border-width:0;">
		<tr>
			<td><a id="ctl00_ContentPlaceHolder1_TreeView1n14" href="javascript:TreeView_ToggleNode(ctl00_ContentPlaceHolder1_TreeView1_Data,14,document.getElementById('ctl00_ContentPlaceHolder1_TreeView1n14'),'t',document.getElementById('ctl00_ContentPlaceHolder1_TreeView1n14Nodes'))">
<img src="/GD_site/WebResource.axdd=qGJ97oPlCKJEjbxNtOnxS0qq3se3SnpsQq_IEpE8JITQ2NxuCcV6uivKCoWOdC8NiW7iEKDmtF_b0hq3OTAt3ZyuSGnrK95p-53YbGmGF99wJy0BEBRZqzZOQ__ZW4LpU6qcXg2&amp;t=634259246669821568" alt="Сворачивание 50 | 18.04.2017 | Двери для дворца пионеров                         " style="border-width:0;" /></a></td><td onmouseover="TreeView_HoverNode(ctl00_ContentPlaceHolder1_TreeView1_Data, this)" onmouseout="TreeView_UnhoverNode(this)" style="white-space:nowrap;"><a class="ctl00_ContentPlaceHolder1_TreeView1_0" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$TreeView1','sOrder||50')" onclick="TreeView_SelectNode(ctl00_ContentPlaceHolder1_TreeView1_Data, this,'ctl00_ContentPlaceHolder1_TreeView1t14');" title="Открыть заказ №-50" id="ctl00_ContentPlaceHolder1_TreeView1t14">50 | 18.04.2017 | Двери для дворца пионеров                         </a></td>
		</tr>
	</table><div id="ctl00_ContentPlaceHolder1_TreeView1n14Nodes" style="display:block;">
		<table cellpadding="0" cellspacing="0" style="border-width:0;">
			<tr>
				<td><div style="width:20px;height:1px"><img src="/GD_site/WebResource.axd?d=73vyzJ0aXvbSnnS6K_X331wWuKrR5KQJeyBjkBkEQ7OJKgfMFOmykceE-VW37ifJ42VCoPrLGemt7L7meEUVv4FXqhdMUocs4korSXrmyDdjBDWb0&amp;t=634259246669821568" alt="" /></div></td><td><img src="/GD_site/WebResource.axd?d=_f9nyymByacIFSAMHu3twxfp0xH2kF-xMXShZM-g8FOqxbCs4bc0j35MrmAogtLnq3bt5rZeTE_cXDRLSa1l6ILL9JKKeBI6xe4nG_oqKdVj5oyW0&amp;t=634259246669821568" alt="" /></td><td onmouseover="TreeView_HoverNode(ctl00_ContentPlaceHolder1_TreeView1_Data, this)" onmouseout="TreeView_UnhoverNode(this)" style="white-space:nowrap;"><a class="ctl00_ContentPlaceHolder1_TreeView1_0" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$TreeView1','sOrder||50\\Item||16')" onclick="TreeView_SelectNode(ctl00_ContentPlaceHolder1_TreeView1_Data, this,'ctl00_ContentPlaceHolder1_TreeView1t15');" title="Открыть позицию заказа 50" id="ctl00_ContentPlaceHolder1_TreeView1t15">50 | 16 | Дверь в комнату №1                           | 1</a></td>
			</tr>
		</table>



Вот сабж человек пишет, что прикрутил свой обработчик к дереву...

Я обработчик тоже прикрутил

На странице
Код: java
1.
function MyJavaScript(el) {alert(el.id);}


В коде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        TreeView1.Nodes.Clear()
        Dim parentnode As New TreeNode
        parentnode = New TreeNode
        parentnode.Value = "New|"
        parentnode.Text = "Новый заказ"
        parentnode.ToolTip = "Создать новый заказ"
        TreeView1.Nodes.Add(parentnode)
        TreeView1.Attributes.Add("onclick", "MyJavaScript(this)")


В сгенерированной странице событие onclick вижу
Код: html
1.
<div id="ctl00_ContentPlaceHolder1_TreeView1" onclick="MyJavaScript">



но событие находиться в treeview а надо в node
Вот собственно и все....
Вопрос как прикрутить onClic и dblclick в ветку и лист дерева?
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494895
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВ сгенерированной странице событие onclick вижу
<div id="ctl00_ContentPlaceHolder1_TreeView1" onclick="MyJavaScript">
Правильно будет
Код: html
1.
<div id="ctl00_ContentPlaceHolder1_TreeView1" onclick="MyJavaScript(this)">
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494913
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

Классический ASP.NET это навязанная технология, или сам выбрал?
Если сам, то может посмотришь в сторону ASP.NET MVC, и Tree на стороне клиента с передачей данных JSON?
Просто мне чёт лень вникать в допотопную технологию :)
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494940
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,
ASP.NET может и состарилась, но америкосы сделали не сочтите за рекламу
Другие мнения или советы?
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494958
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

Странный аргумент. Тоже америкосы:

https://demos.devexpress.com/MVC/
http://demos.telerik.com/aspnet-mvc/
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494959
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, там http://www.obout.com/inc/download.aspx есть ссылка на скачивание для MVC.
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39494967
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

hVosttКстати, там http://www.obout.com/inc/download.aspx есть ссылка на скачивание для MVC.
Подозреваю, что закончиться - Evaluation has expired.
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495021
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereно событие находиться в treeview а надо в node
кто мешает его прокинуть туда? все ж просто переопределяешь TreeNode
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class MyTreeNode : TreeNode
{
 protected override void RenderPreText(HtmlTextWriter writer)
 {
...
    writer.AddAttribute(...);
...
 }

 protected override void RenderPostText(HtmlTextWriter writer)
 {
...
     writer.AddAttribute(HtmlTextWriterAttribute.Onclick, ".....");
...
 }
}
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495047
KohrAhr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
it-sphere,

вообще то это российский продукт. если не ошибаюсь - творение одного человека.
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495103
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, спасибо за помощь!

Где были мои глаза?
it-sphere onclick="TreeView_SelectNode(ctl00_ContentPlaceHolder1_TreeView1_Data, this,'ctl00_ContentPlaceHolder1_TreeView1t14');"

Скриптом получаем вожделенный ID

Код: javascript
1.
2.
3.
4.
5.
<script type="text/javascript">
function TreeView_SelectNode(aa,bb,cc) {
    alert(bb.id);
}
</script>


Вот собственно Id элемента получено.
Как оказалось не все так страшно :)
А дальше туман....
надо погрызть скрипты
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495106
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
handmadeFromRu,
я правильно понимаю, что предлагаете создать наследника и добавить ему свойства?
думаю, что пригодиться для dblclick т.к редактировать лучше по нему.
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495117
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

ты можешь менять отрисовку Node как тебе вздумается и добавлять что угодно для элемента, собственно если ты хочешь рисовать как по твоей ссылке
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495129
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
handmadeFromRu,
handmadeFromRuсобственно если ты хочешь рисовать как по твоей ссылке
Поясните...
Изменение типа поля на input делать скриптом или в коде?
И если не затруднит пример.
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495213
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

я не понимаю что ты там хочешь поменять и зачем. пример как рисовать? ну ок
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
protected override void RenderPostText(HtmlTextWriter writer)
        {
            base.RenderPostText(writer);
                    writer.Write("&nbsp;");
                    writer.AddAttribute(HtmlTextWriterAttribute.Type, "image");
                    writer.AddAttribute(HtmlTextWriterAttribute.Src, "images/glplus.gif");
                    writer.AddAttribute(HtmlTextWriterAttribute.Title, Resource.Admin_StaticPage_Create);
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "showtooltip");
                    writer.AddAttribute("onmouseover", "this.src = \'images/blplus.gif\';");
                    writer.AddAttribute("onmouseout", "this.src = \'images/glplus.gif\';");
                    writer.AddAttribute(HtmlTextWriterAttribute.Onclick,
                                        "window.location='SomePage.aspx?ParentID=" + Value +
                                        "&mode=create';return false;");
                    writer.RenderBeginTag(HtmlTextWriterTag.Input);
                    writer.RenderEndTag();                
     }
...
Рейтинг: 0 / 0
Редактирование TreeView пользователем
    #39495267
Березовский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то мне кажется, что на WebForms это делаете?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Редактирование TreeView пользователем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]