Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буду тут про ExtJS спрашивать... / 25 сообщений из 82, страница 1 из 4
12.08.2013, 18:03
    #38363648
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Страница разделена на две панели, верхнюю и центральную. В верхнюю воткнут статический html с отцентрированной шапкой, содержимое нижней будет формироваться с помощью методов ExtJS.

Вопрос: как отцентрировать и отрезинить содержимое нижней панели аналогично шапке?

HTML:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<!DOCTYPE html PUBLIC "HTML5">
<html>
    <head>
        <META http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <link rel="stylesheet" type="text/css" href="../ext-4.2.1.883/resources/css/ext-all.css" />
        <script type="text/javascript" src="../ext-4.2.1.883/ext-all.js"></script>
        <script type="text/javascript" src="ExtFK.js"></script>
        <style>
* {margin: 0;padding: 0;}
html, body {height: 100%; width: 100%;}

#wrapper {
    min-width: 950px;
    max-width: 1280px;
    margin: 0 auto;
}

#header {
    height: 100%;
    max-width: 1280px;
}
        </style>
    </head>
    <body>
    <div id="wrapper">
        <div id="header">
            <img id="logo" src="sem/logo.png"/>
            <div id="descr">
                <h2>Организация и сопровождение бизнес-семинаров</h2>
                <br/><br/><br/>
                <font color="#666699">
                    Москва
                </font>
            </div>
            <img id="menubg" src="sem/grad_h.gif"/>
            <div class="menumain">
                <a href="#">Главная</a>
                <a href="#">Семинары</a>
                <A href="#">Адреса конференц-залов</A>
                <A href="#">Реквизиты</A>
            </div>
        </div>
    </div>
  </body>
</html>


JS:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Ext.Loader.setConfig({
    enabled: true
});
Ext.Loader.setPath('Ext', 'ext-4.2.1.883');
Ext.require([
    'Ext.Msg', 
    'Ext.panel.*'
]);
Ext.onReady(function () {
    var panels = [
        {
            xtype: 'panel',
            region: 'north',
            height: 190,
            contentEl: "wrapper"
        }, 
        {
            xtype: 'panel',
            region: 'center',
            defaultAlign: 't',
            border: 1,
            items: [
                {
                    xtype: 'toolbar',
                    width: 1280,
                    items: [
                        {
                            xtype: 'button',
                            glyph: 61,
                            text: 'test'
                        }
                    ]
                }, 
                {
                    width: 1280,
                    xtype: "Ext.grid.Panel",
                    border: false,
                    columns: [
                        {
                            text: 'Company',
                            flex: 1,
                            sortable: false,
                            dataIndex: 'company'
                        }, 
                        {
                            text: 'Price',
                            width: 75,
                            sortable: true,
                            renderer: 'usMoney',
                            dataIndex: 'price'
                        }
                    ]
                }
            ]
        }
    ];
    var panel = Ext.create('Ext.panel.Panel', {
        renderTo: document.body,
        layout: 'border',
        border: false,
        defaults: {
            border: false
        },
        items: panels
    });
    panel.setSize(window.innerWidth, window.innerHeight);
    window.onresize = function () {
        panel.setSize(window.innerWidth, window.innerHeight);
    };
});

...
Рейтинг: 0 / 0
12.08.2013, 18:06
    #38363657
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Antonariyкак отцентрировать и отрезинить содержимое нижней панели аналогично шапке?зарендерить не в document.body, а в отцентрированный и отрезиненный див.
...
Рейтинг: 0 / 0
12.08.2013, 18:09
    #38363664
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Пробовал, не резинится. Насколько я понял, чтобы резинилось, нужно чтобы иерархия панелей начиналась непосредственно с body.
...
Рейтинг: 0 / 0
13.08.2013, 13:20
    #38364563
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
С предыдущим вопросом разобрался.

Как изменить размер шрифта у кнопки тулбара и вообще увеличить ее? scale меняет лишь размер иконки, а размер шрифта в cls переопределяется классом .x-btn-default-toolbar-small .x-btn-inner темы.
...
Рейтинг: 0 / 0
13.08.2013, 13:49
    #38364628
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Antonariy,

И как разобрался?

Можно напрямую стиль в свойствах объекта поменять.
...
Рейтинг: 0 / 0
13.08.2013, 13:53
    #38364635
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Да как ярмеч и сказал, видимо раньше я что-то не то делал.

Напрямую менять стиль или расширять классы западло, нужен штатный метод.
...
Рейтинг: 0 / 0
14.08.2013, 18:21
    #38366660
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Вопрос про грид.

Видел разные варианты, как создать грид, подсовывая ему набор данных или data.Store в конфиг, а как наоборот? Есть грид, жму на кнопку, получаю аяксом данные, как теперь их в грид залить? Не нашел среди методов ничего подходящего.

PS: вопрос про кнопки все еще актуален.
...
Рейтинг: 0 / 0
14.08.2013, 22:22
    #38366886
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Antonariy,
не надо ничего в грид "заливать". У грида есть хранилище (Ext.data.Store) , вот в него данные и клади.

Как изменить размер шрифта у кнопки тулбара и вообще увеличить ее?Увеличить кнопку можно задав в конфиге свойства .width / .minWidth и .height .
Размер шрифра - класом
Код: css
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
/* ------------------------
конфиг кнопки */
{text:'myButton', cls:'x-btn-mybutton', width:150, height:50}

/* ------------------------
css */
.x-btn-mybutton {
  /* любые стили для тэга div, являющегося 'контейнером' для кнопки*/
}
.x-btn-mybutton .x-btn-inner {
  /* любые стили для тэга span, являющегося 'контейнером' для текста кнопки*/
  font-size:larger;
}
...
Рейтинг: 0 / 0
15.08.2013, 12:09
    #38367304
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
скукотищаУ грида есть хранилище (Ext.data.Store) , вот в него данные и клади.Как?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Ext.onReady(function () {
    var toolbar:Ext.toolbar.IToolbar = {
        xtype: 'toolbar',
        items: [...],
    };
    var grid:Ext.grid.property.IGrid = {
        width: 1280,
        xtype: "Ext.grid.Panel",
        constrain: true,
        border: false,
        columns?: [...]
    }

// создаю панель с тулбаром и гридом
    var panel: Ext.panel.IPanel = Ext.create('Ext.panel.Panel', {
        renderTo: "content",
        layout: "auto",
        border: 1,
        items: [toolbar, grid]
    });

    ExtFK.Events.GetEvents(function (data: tblEvents[]) {
        //получил данные. что дальше с ними делать?
    })
});
...
Рейтинг: 0 / 0
15.08.2013, 13:53
    #38367519
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Antonariy,
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
/* в конфигурацию грида можно передавать как объект Ext.data.Store, так и как конфигурацию */
//var myStore = Ext.create('Ext.data.Store',{
var myStore = {
  fields:[{name:id,type:'int'}, ... ],
  proxy:{
    type: 'memory',
    reader:{
      type:'json',
      idProperty:'id',
      root: 'data'
    }
  }
};
//});

    var grid:Ext.grid.property.IGrid = {
        width: 1280,
        xtype: "Ext.grid.Panel",
        constrain: true,
        border: false,
        store: myStore, // !! для грида store - обязательный параметр конфига
        columns?: [...] //зависит от того, что за поля у тебя в хранилище, которое этот грид будет отображать
    }

    ExtFK.Events.GetEvents(function (data: tblEvents[]) {
        //получил данные. что дальше с ними делать?
        //твой запрос возвращает объект, имеющий поле data ( массив записей для хранилища )
        var ajaxResponseTextDecoded = Ext.decode( response.responseText )
        store.loadRawData( ajaxResponseTextDecoded );
    })


ЗЫ: документацию хоть читал, или только примеры просмотрел ?
...
Рейтинг: 0 / 0
15.08.2013, 14:51
    #38367616
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
И документацию читал, и примеры смотрел, и яндекс перетряхивал.
Решил сделать по образцу :
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Ext.define('Events', {
    extend: 'Ext.data.Model',
    fields: ['EventID', 'Date', 'Name', 'Price']
});

Ext.onReady(function () {
    ...

    var myStore = Ext.create('Ext.data.Store', {
        model: "Events",
        proxy: {
            type: 'memory',
            reader: {
                type: 'json',
                idProperty: 'EventID',
                root: 'data'
            }
        }
    });

    var grid:Ext.grid.property.IGrid = {
        width: 1280,
        xtype: "Ext.grid.Panel",
        store: myStore,
        constrain: true,
        border: false,
        columns?: [{ 
            text: 'ID',
            width: 50,
            align: "right",
            dataIndex: 'EventID'
        },...]
    }

    var panel: Ext.panel.IPanel = Ext.create('Ext.panel.Panel', {
        renderTo: "content",
        layout: "auto",
        border: 1,
        items: [toolbar, grid]
    });

});

Панель с тулбаром и гридом вообще перестала создаваться, а в консоль стала падать ошибка из недр extjs, что c.getRootNode is not a function.
C твоим вариантом (без модели) тоже самое.
...
Рейтинг: 0 / 0
15.08.2013, 15:44
    #38367716
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Antonariy,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Ext.define('Events', {
	extend: 'Ext.data.Model',
	fields: ['EventID', 'Date', 'Name', 'Price']
});

Ext.define('EventsStore', {
	extend: 'Ext.data.Store',
	storeId: 'EventsStore',
	model: 'Events',
	proxy: {
		type: 'memory',
		reader: {
			type: 'json',
			idProperty: 'EventID',
			root: 'data'
		}
	}
});

Ext.onReady(function () {

    var toolbar = {
        xtype: 'toolbar',
        items: ['Йа проста текст ',{text:'Йа кнопко'}]
    };

    var grid = {
        xtype: 'grid',
        width: 1280,
        constrain: true,
        border: false,
        store: Ext.getStore('EventsStore'),
        columns: [{ 
            text: 'ID',
            width: 300,
            align: "right",
            dataIndex: 'EventID'
        }]
    };

    var panel = Ext.create('Ext.panel.Panel', {
        renderTo: 'content',
        layout: 'auto',
        border: 1,
        items: [toolbar, grid]
    });

});


...
Рейтинг: 0 / 0
15.08.2013, 16:15
    #38367794
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
скукотища,

Не работает. Ext.getStore('EventsStore') возвращает undefined.
...
Рейтинг: 0 / 0
15.08.2013, 16:42
    #38367853
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Antonariy,
извини, не проверил. Вот работающий пример.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
Ext.define('Events', {
	extend: 'Ext.data.Model',
	fields: ['EventID', 'Date', 'Name', 'Price']
});

Ext.define('EventsStore', {
	extend: 'Ext.data.Store',
	model: 'Events',
	proxy: {
		type: 'memory',
		reader: {
			type: 'json',
			idProperty: 'EventID',
			root: 'data'
		}
	}
});

Ext.onReady(function () {
	var fnemuLoad=function(button){ //эмулятор загрузки
		//var store = Ext.getCmp('mypanel').down('grid').store;
		var store = button.up('panel').down('grid').store;
		
		//объект, возвращаемый запросом
		var ajaxResponseText = {	
			id:333,
			elseField:'someData',
			data:[{EventID:'evt-100'},{EventID:'evt-241'},{EventID:'evt-320'}]
		};
		store.loadRawData( ajaxResponseText );
	};
	var fnemuClear=function(button){ //очистка хранилища
		//var store = Ext.getCmp('mypanel').down('grid').store;
		var store = button.up('panel').down('grid').store;
		store.removeAll();
	};

    var toolbar = {
        xtype: 'toolbar',
        items: [
			'Йа проста текст ',
			{text:'"Загрузить"',handler:fnemuLoad},
			{text:'"Удавить все"',handler:fnemuClear}
	]};

    var grid = {
        xtype: 'grid',
        width: 1280,
        constrain: true,
        border: false,
        store: Ext.create('EventsStore'),
        columns: [{ 
            text: 'ID',
            width: 300,
            align: "right",
            dataIndex: 'EventID'
        }]
    };

    var panel = Ext.create('Ext.panel.Panel', {
		id:'mypanel',
        renderTo: 'content',
        layout: 'auto',
        border: 1,
        items: [toolbar, grid]
    });

});

...
Рейтинг: 0 / 0
15.08.2013, 17:37
    #38367970
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Спасибо, начал кое-что понимать :)

Здесь 14713441 была ошибка в xtype, нужно grid вместо Ext.grid.Panel. Не помню, откуда я скопипастил конфиг с полным написанием.
...
Рейтинг: 0 / 0
22.08.2013, 14:18
    #38374670
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Antonariy,
я сильно извиняюсь, что не по теме, нашел ваш ответ по поводу доступа из парент окна к дочернему (javascript)



Вы отвечали что возможно если находятся в одном домене, у меня оба веб приложения в одном домене, но выдает ошибку SCRIPT5: Отказано в доступе.
...
Рейтинг: 0 / 0
22.08.2013, 14:32
    #38374703
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Ничего не могу сказать, не видя ваше приложение вживую.
...
Рейтинг: 0 / 0
22.08.2013, 14:34
    #38374706
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Если вы по этому вопросу 14741170 , то я не очень понимаю, как сайт стороннего производителя может находиться в том же домене.
...
Рейтинг: 0 / 0
22.08.2013, 14:47
    #38374738
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
домен внутренний к примеру internal.int одно приложение мое и находиться по адресу app1.internal.int а второе куплено но стоит тоже внутри нашей сети и расположено по адресу app2.internal.int
...
Рейтинг: 0 / 0
22.08.2013, 15:06
    #38374777
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
maxandsoftдомен внутренний к примеру internal.int одно приложение мое и находиться по адресу app1.internal.int а второе куплено но стоит тоже внутри нашей сети и расположено по адресу app2.internal.intтут ответили
14741239
...
Рейтинг: 0 / 0
26.08.2013, 21:09
    #38377892
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Какое должно быть значение у datefield.submitFormat, чтобы datefield сабмитил дату в формате ISO8601?
...
Рейтинг: 0 / 0
26.08.2013, 22:23
    #38377939
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
> Какое должно быть значение у datefield.submitFormat, чтобы datefield сабмитил дату в формате ISO8601?
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.Date-cfg-submitFormat The format must be valid according to Ext.Date.parse .

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.Date
Код: plaintext
1.
2.
3.
4.
5.
6.
Format      Description                                                               Example returned values
....
------      -----------------------------------------------------------------------   -----------------------
   c         ISO 8601 date
....
 [code=plaintext]

???
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.08.2013, 22:48
    #38377952
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Спасибо, все получилось.
...
Рейтинг: 0 / 0
27.08.2013, 00:30
    #38377996
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
Как обновить запись в Store? Есть всякие load, но они только перезаписывают или добавляют данные, а ничего похожего на update не нашел. Смотрел этот пример, не понял, откуда форма знает, какой Store апдейтить.
...
Рейтинг: 0 / 0
27.08.2013, 12:30
    #38378451
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буду тут про ExtJS спрашивать...
> Как обновить запись в Store? Есть всякие load, но они только перезаписывают или добавляют данные, а ничего похожего на update не нашел
Т.е. у тебя ЭстЪ уже какие-то данные, загруженные в Store с серванта. На серванте кто-то рихтонул одну запись и ты хочешЪ, чтобы только она одна и от'refresh'илась (т.е. в response она д.б. одна и Store должен только ее одну и обновить)? Или я тебя неправильно понял?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буду тут про ExtJS спрашивать... / 25 сообщений из 82, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]