Добавить в ExtJS сетки панели для аккордеона содержание


Я вообще-то не уверен, что это возможно, но я все равно спрошу. У меня есть группа элементов управления аккордеоном, и в теле содержимого каждого из них мне нужно отобразить панель сетки. К панели сетки должно быть прикреплено событие click. Я попытался просто создать панель grid и установить на нее свойство HTML аккордеона, но это не дает никакого контента.

Могу ли я как-то достичь этого?

2 2

2 ответа:

Вы не можете иметь html-контент (вставленный свойством) наряду с любым другим контентом. При добавлении любого элемента значение свойства html не будет установлено/переопределено. Но наверняка вы можете поместить все, что хотите, в одну панель аккордеона. Даже сетка. Но в этом случае, и основываясь на последнем вопросе , я бы рекомендовал вам ссылаться на представление в сетке. Вы можете сделать это просто с помощью ComponentQuery

События щелчка могут быть применены с помощью функцияуправления контроллера.

Для вашего основного понимания:

в ExtJS вы редко используете простой html-код. В большинстве сценариев вы используете любой компонент. Все вложенные в элементы массива или dockedItem-массив. Элементы в этих массивах также обрабатываются системой компоновки.

Некоторые примеры запросов, применимые к функции управления

В следующем this относится к контроллеру сам.

Вы знаете идентификатор сетки (обычно вы этого не делали). Идентификаторы маркируются начальным #

control({'#yourId': {itemclick: this.onItemclick }});

Вы знаете тип xtype и что существует только один экземпляр этого типа. Вы также можете описать путь, используя пробелы между типами xtypes.

control({'grid': {itemclick: this.onItemclick }});

Вы установили пользовательское свойство в grid (вы можете ссылаться на любое свойство таким образом). Этот полностью совместим с тем, что выше. я рекомендую этот вариант в вашем случае

control({'grid[customIdent=accordionGrid]': {itemclick: this.onItemclick }});

Это всего лишь некоторые способы использования ComponentQueries, есть и другие. Для более подробного объяснения вы должны обратиться к API sencha для ComponentQuery

Также обратите внимание, что каждый компонент реализует вверх() и еще вниз() методы, которые также поддерживают ComponentQueries.

Я забыл упомянуть: для элемента управления запрос строго должен возвращать только один результат (будет взят только первый) ComponentQuery с другой стороны может возвращать несколько результатов.

Это вполне возможно, но тело аккордеона-не то место, куда его можно поместить. Вам нужно будет добавить его в массив items: [] аккодиона. Тело (или html) принимает только html. Пример:

Http://docs.sencha.com/ext-js/4-1/#!/example/layout/accordion.html

У этого есть сетка внутри него.