[ExtJS] Динамическое создание вкладок
От: majorwest  
Дата: 10.11.09 14:37
Оценка:
Подскажите, пожалуйста, как грамотно реализовать следующее:

Есть Ext.TabPanel.
При нажатии на некую кнопку на сервер посылается ajax-запрос, сервер возвращает описание вкладки, которую необходимо создать и добавить в TabPanel.

Таким образом разные кнопочки создают новые разные вкладки: это могут быть вкладки с гридами внутри, формами, чем угодно.

Интересуют тонкости этого процесса: в каком виде сервер должен вернуть информацию о создаваемой вкладке и как полученный ответ привязать к TabPanel.

Например, в случае с созданием окон, дело обстоит проще: серверу достаточно вернуть ответ типа:

<script type="text/javascript">
Ext.onReady(function(){
    Ext.MessageBox.alert('раз', 'два');
});
</script>


А вот как с вкладками быть — не пойму...

Подтолкните на верный путь.

11.11.09 00:54: Перенесено модератором из 'Языки с динамической типизацией' — Кодт
Re: [ExtJS] Динамическое создание вкладок
От: Mikhail Polykovsky Россия  
Дата: 11.11.09 04:50
Оценка:
Здравствуйте, majorwest, Вы писали:

M>Подскажите, пожалуйста, как грамотно реализовать следующее:


M>Есть Ext.TabPanel.

M>При нажатии на некую кнопку на сервер посылается ajax-запрос, сервер возвращает описание вкладки, которую необходимо создать и добавить в TabPanel.

M>Таким образом разные кнопочки создают новые разные вкладки: это могут быть вкладки с гридами внутри, формами, чем угодно.


M>Интересуют тонкости этого процесса: в каком виде сервер должен вернуть информацию о создаваемой вкладке и как полученный ответ привязать к TabPanel.


Обычно в таких случаях возвращается html код, который на стороне клиента вставляется в нужное место страницы. Какая точно команда на Ext вставляет html в DOM — не знаю.


M>Например, в случае с созданием окон, дело обстоит проще: серверу достаточно вернуть ответ типа:


M>
M><script type="text/javascript">
M>Ext.onReady(function(){
M>    Ext.MessageBox.alert('раз', 'два');
M>});
M></script>
M>


M>А вот как с вкладками быть — не пойму...


M>Подтолкните на верный путь.
Re[2]: [ExtJS] Динамическое создание вкладок
От: SergASh  
Дата: 14.11.09 12:46
Оценка:
Здравствуйте, Mikhail Polykovsky, Вы писали:

СКАЖИ НЕТ ОВЕРКВОТИНГУ

MP>Обычно в таких случаях возвращается html код, который на стороне клиента вставляется в нужное место страницы. Какая точно команда на Ext вставляет html в DOM — не знаю.


Для Ext JS это не подойдет, поскольку приготовленный на сервере HTML — это просто HTML, а товарищу нужно, насколько я понимаю, чтобы в табах появлялись всякие контролы, которые он мог бы сделать на клиентской стороне средствами самой Ext JS, если бы только мог знать заранее какие. Контролы эти весьма нетривиальный HTML дают, поэтому вручную пытаться его повторить на сервере — это неудачая идея.

Я бы в качестве аяксного ответа сделал кусок джаваскрипта, который бы состоял из одной функции. По получении ответа от сервера клиентский код добавлял бы скрипт-блок и вызывал эту функцию. А она могла бы уже пользоваться всем арсеналом ExtJS. Как вариант возвращала бы конфигурационный объект, а при добавлении таба этот объект передавался в его конструктор. Только надо подумать как избегать конфликта имен этих функций.
Re[3]: [ExtJS] Динамическое создание вкладок
От: Mikhail Polykovsky Россия  
Дата: 14.11.09 16:26
Оценка:
SAS>СКАЖИ НЕТ ОВЕРКВОТИНГУ

Извиняюсь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.