Extjs 4 присваивает каждому элементу идентификатор - PullRequest
0 голосов
/ 29 апреля 2011

Так что я работаю с новым Ext, следуя MVC-паттернам, создавая контроллеры, которые прослушивают события для просмотра методов огня.У меня есть представление с деревом, загруженным в качестве меню администратора, и я хочу прослушивать из контроллера «Пользователи», когда щелкает элемент дерева «Список всех пользователей», чтобы я мог показать сетку всем пользователям.Моя логика говорит, что я должен установить id для каждого элемента дерева, чтобы убедиться, что я слушаю правильную и единственно возможную ... проблема в том, что, хотя я посылаю и id в мой json для каждого элемента, онникогда не назначается.Идентификаторы элементов по-прежнему имеют тип идентификаторов элементов ext-gen1091.

Есть идеи, как мне назначить уникальный идентификатор каждому из моих элементов дерева?

Мой json выглядит такэто:

{"expanded":"true","text":"Users","id":"users","children":[{"text":"List all users","id":"userslist"....

1 Ответ

0 голосов
/ 29 апреля 2011

Вам не нужно использовать HTML-идентификаторы для идентификации обрабатываемой вами записи. ExtJS предоставляет API-интерфейсы, которые упрощают обработку операций, прослушивание событий и т. Д. В дереве или других компонентах.

Так как у вас уже есть идентификатор, назначенный каждому узлу в дереве. Вы можете использовать тот же идентификатор для работы, когда происходит действие / событие. Все, что вам нужно сделать, это добавить соответствующие методы прослушивателя событий на панель дерева. Например, если вы отслеживаете щелчок по узлу, вы можете использовать itemclick. Параметры методов предоставляют вам доступ ко всей необходимой вам информации.

вот код скелета:

itemclick: function(Ext.view.View this, Ext.data.Model record, HTMLElement item, Number index, Ext.EventObject e) {
   // Access the record using record or you can access the HTML using item variable.
}

Аналогичным образом вы можете использовать другие события и отслеживать действия пользователя.

...