Treepanel и GridPanel + события

44 views
Skip to first unread message

Semen Starostin

unread,
Oct 21, 2014, 1:32:54 AM10/21/14
to ext...@googlegroups.com
Здравствуйте! Я новичок и только только начал изучать ExtNet, у меня возникают некоторые трудности с пониманием событий. В частности я могу понять как создать событие и обработчик этого события для одного элемента.
Но я не могу понять как реализовать события которые определены в одном элементе и должны влиять на другой элемент.
Например сейчас у меня реализован TreePanel в котором строится дерево категорий по средствам ajax запроса при обращении к каждому узлу дерева. Так же есть GridPanel. Теперь мне нужно сделать так что бы при нажатии на узел TreePanel заполнялась таблица GridPanel. Как это реализовать?

Vladimir Scheglov

unread,
Oct 21, 2014, 1:42:43 AM10/21/14
to ext...@googlegroups.com

Примерно так

http://examples.ext.net/#/TreePanel/Basic/SiteMap/

 

То есть вешаете ItemClick событие  для дерева и выполняете любое действие. К примеру,

<ItemClick Handler=”#{GridPanel1}.store.reload({params: {nodeId: record.getId()}});” />

 

А можно использовать MessageBus для уменьшения связности компонентов

http://examples.ext.net/#/MessageBus/Basic/Simple/

--
Вы получили это сообщение, поскольку подписаны на группу "Ext.NET".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес extnet+un...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Semen Starostin

unread,
Oct 29, 2014, 2:32:26 AM10/29/14
to ext...@googlegroups.com
Еще раз здравствуйте и спасибо я частично разобрался. 
Возник еще один небольшой вопрос, сейчас при нажатии на ужел дерева я с помощью DirectEvent создаю событие которое отправляет запрос на сервер и принимает данные:
.DirectEvents(de =>
                              {
                                  de.Select.Url = Url.Action("GetData");
                                  de.ItemClick.Success = "onSuccess(App.GridPanel1,result.data);";
                              })
как мне изменить эту конструкцию что бы получить имя узла и передать его на сервер:

                              .DirectEvents(de =>
                              {
                                  de.Select.Url = Url.Action("GetData", new {id = "temp"});
                                  de.ItemClick.Success = "onSuccess(App.GridPanel1,result.data);";
                              })

т.е. вместо temp мне нужен text у node, если использовать listners то там получить такое знаечения после нажатие на узел можно с помощью:

.Listeners(l =>
                              {
                                  l.ItemClick.Handler = "onSuccess(#{GridPanel1},record.data.text);"; 
                              })

вторник, 21 октября 2014 г., 11:42:43 UTC+6 пользователь quirkmind написал:

Daniil Veriga

unread,
Oct 30, 2014, 2:20:36 PM10/30/14
to ext...@googlegroups.com
Гляньте этот пост, пожалуйста.
http://forums.ext.net/showthread.php?24955&p=109768&viewfull=1#post109768
Reply all
Reply to author
Forward
0 new messages