Добавить в ExtJS сетки панели для аккордеона содержание
Я вообще-то не уверен, что это возможно, но я все равно спрошу. У меня есть группа элементов управления аккордеоном, и в теле содержимого каждого из них мне нужно отобразить панель сетки. К панели сетки должно быть прикреплено событие click. Я попытался просто создать панель grid и установить на нее свойство HTML аккордеона, но это не дает никакого контента.
Могу ли я как-то достичь этого?
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
У этого есть сетка внутри него.