Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Проблема с запуском окна (https://javascript.ru/forum/extjs/48691-problema-s-zapuskom-okna.html)

dimsog 13.07.2014 08:23

Проблема с запуском окна
 
Добрый день!
Есть форма:
var tovar_window = Ext.create('Ext.window.Window', {
    title:"Заголовок",
    height:300,
    width:500,
    items: [
        {
            xtype:'grid',
            title:"Список товаров",
            columns: [
                {
                    text:"ID",
                    dataIndex: "device_vendor_id"
                },
                {
                    text: "Название",
                    dataIndex: "device_full_name"
                },
                {
                    text: "Популярность",
                    dataIndex: "popular"
                },
                {
                    text: "Зарядка",
                    dataIndex: "charger"
                },
                {
                    text: "Акб",
                    dataIndex: "akb"
                }
            ]
        }
    ]
})


Вызывается так:
var toolbar_tovar_menu  = Ext.create("Ext.menu.Menu", {
            items: [
                {
                    text: "Товары",
                    handler: function() {
                        tovar_window.show();
                    }
                },
.....


При первом вызове форма открывается нормально, при втором видно только синюю рамку.
Правильно ли я понимаю, что чтобы вызывать несколько экземпляров одной формы необходимо добавлять ее в массив с уникальным именем? Или можно по другому решить данную проблему?

skrudjmakdak 13.07.2014 19:48

тут как бэ два варианта реализации:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<title>example</title>
		<script type="text/javascript" src="http://docs.sencha.com/extjs/4.2.2/extjs/ext-all.js"></script>
		<link rel="stylesheet" type="text/css" href="http://docs.sencha.com/extjs/4.2.2/resources/css/app-4689d2a5522dcd3c9e9923ca59c33f27.css">
		<script type="text/javascript">
Ext.onReady(function(){
//-------------

var tovar_window = Ext.create('Ext.window.Window',
	{
    title:"Заголовок",
    height:70,
    width:100,
    //closable: true,
    closeAction: 'hide'
	});


Ext.create('Ext.Button',
	{
	text: 'Click me 1',
	renderTo: Ext.getBody(),
	handler: function()
		{
		tovar_window.show();
		}
	});
	
Ext.create('Ext.Button',
	{
	text: 'Click me 2',
	renderTo: Ext.getBody(),
	handler: function()
		{
		Ext.create('Ext.window.Window',
			{
			title:"Заголовок",
			height:70,
			width:100
			}).show();
		}
	});
//-------------
});
		</script>
	</head>
	<body></body>
</html>


в первом вариенте мы указываем, что не удаляем форму после закрытия, а просто закрываем (по умолчанию идет удаление при закрытии), т.е. вы второй раз когда кликайте по кнопке, то окна уже нет.

а второй вариант, это как раз создание формы при клике, причем каждый раз когда кликайте, создается новая форма, а когда закрывайте удаляется..

как то так ;)


Часовой пояс GMT +3, время: 06:51.