powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буду тут про ExtJS спрашивать...
82 сообщений из 82, показаны все 4 страниц
Буду тут про ExtJS спрашивать...
    #38363648
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страница разделена на две панели, верхнюю и центральную. В верхнюю воткнут статический 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
Буду тут про ExtJS спрашивать...
    #38363657
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyкак отцентрировать и отрезинить содержимое нижней панели аналогично шапке?зарендерить не в document.body, а в отцентрированный и отрезиненный див.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38363664
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал, не резинится. Насколько я понял, чтобы резинилось, нужно чтобы иерархия панелей начиналась непосредственно с body.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38364563
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С предыдущим вопросом разобрался.

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

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

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

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

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

PS: вопрос про кнопки все еще актуален.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38366886
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Буду тут про ExtJS спрашивать...
    #38367304
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаУ грида есть хранилище (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
Буду тут про ExtJS спрашивать...
    #38367519
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Буду тут про ExtJS спрашивать...
    #38367616
Фотография 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.
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
Буду тут про ExtJS спрашивать...
    #38367716
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Буду тут про ExtJS спрашивать...
    #38367794
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,

Не работает. Ext.getStore('EventsStore') возвращает undefined.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38367853
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Буду тут про ExtJS спрашивать...
    #38367970
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, начал кое-что понимать :)

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



Вы отвечали что возможно если находятся в одном домене, у меня оба веб приложения в одном домене, но выдает ошибку SCRIPT5: Отказано в доступе.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38374703
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не могу сказать, не видя ваше приложение вживую.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38374706
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы по этому вопросу 14741170 , то я не очень понимаю, как сайт стороннего производителя может находиться в том же домене.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38374738
Фотография maxandsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
домен внутренний к примеру internal.int одно приложение мое и находиться по адресу app1.internal.int а второе куплено но стоит тоже внутри нашей сети и расположено по адресу app2.internal.int
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38374777
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxandsoftдомен внутренний к примеру internal.int одно приложение мое и находиться по адресу app1.internal.int а второе куплено но стоит тоже внутри нашей сети и расположено по адресу app2.internal.intтут ответили
14741239
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38377892
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какое должно быть значение у datefield.submitFormat, чтобы datefield сабмитил дату в формате ISO8601?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38377939
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Какое должно быть значение у 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
Буду тут про ExtJS спрашивать...
    #38377952
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, все получилось.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38377996
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как обновить запись в Store? Есть всякие load, но они только перезаписывают или добавляют данные, а ничего похожего на update не нашел. Смотрел этот пример, не понял, откуда форма знает, какой Store апдейтить.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38378451
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Как обновить запись в Store? Есть всякие load, но они только перезаписывают или добавляют данные, а ничего похожего на update не нашел
Т.е. у тебя ЭстЪ уже какие-то данные, загруженные в Store с серванта. На серванте кто-то рихтонул одну запись и ты хочешЪ, чтобы только она одна и от'refresh'илась (т.е. в response она д.б. одна и Store должен только ее одну и обновить)? Или я тебя неправильно понял?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38378548
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа того. Есть список, редактирую запись из него в псевдомодальном диалоге, отправляю обновляться на сервер, возвращается обновленная строка представления, которую нужно обновить в гриде.
Конфигурация store тут 14713441 .
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38378580
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 27.08.2013 13:17, Antonariy wrote:
> возвращается обновленная строка представления
в выхлопе на request сохранения измененных данных id record'а совпадают?

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38378605
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38378696
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 27.08.2013 13:51, Antonariy wrote:
> Автор: Antonariy. Да.

/me думает: гм... А если просто { success: true } only вернуть?.. Там идет проверка: если возвращаются данные, то они должны нахлопываться... Можно даже на серванте значения "подправлять" и все update\'тся по-честному и с record\'а dirty снимается... BTW, я вот здесь когда-то дрозофилку при\'attach\'ивал - попробуй ее напильником/debugger\'ом...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38378903
Фотография 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.
69.
70.
71.
72.
//---------модель 
Ext.define('Events', {
    extend: 'Ext.data.Model',
    fields: ['EventID', 'DateStr', 'Name', 'Price']
});

//---------хранилище
var myStore = Ext.create('Ext.data.Store', {
    model: 'Events',
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            idProperty: 'EventID'
        }
    }
}); 

//---------загрузка данных в хранилище
ExtFK.Events.GetEvents(function (ret: tblEvents[]) {
    myStore.loadRawData(ret);
})

//---------грид
Ext.define('ExtInterface.EventsList', {
    extend:"Ext.grid.Panel",
    store: myStore,
    listeners: {
        itemdblclick: function (th, record, item, index, e, eOpts) {
            //---------открытие диалога для редактирования записи
            ExtFK.Events.GetEvent(record.raw.EventID, function (ret: formEvents) {
                var dlg = Ext.create('ExtInterface.dlgEvent', { dbID: ret.EventID });
                var form = Ext.getCmp("dlgEvent_form_" + ret.EventID).getForm();
                form.setValues(ret);
                dlg.show();
            });
        }
    }
})

//диалог
Ext.define('ExtInterface.dlgEvent', {
    extend: 'Ext.window.Window',
    xtype: 'dlgEvent',
    modal: true,
    initComponent: function () {
        this.items[0].id = this.xtype + "_form_" + this.dbID;
        this.callParent();
    },
    items: [{
        xtype: "form",
        buttons: [
            {
                text: "Сохранить",
                handler: function () {
                    var form = this.up('form').getForm(), th = this;
                    ExtFK.Events.UpdateEvent(form.getValues(), function (ret: tblEvents) {
                        if (ret.EventID > 0) {
                            th.up().up().up().close();
                            //---------здесь должно быть обновление строки грида, а не лоад
                            myStore.loadRawData([ret]);
                        }
                    });
                }
            },
            {
                text: "Отмена",
                handler: function () { this.up().up().up().close() }
            }
        ]
    }]
});
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38380238
Фотография 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.
Ext.define('FKInterface.Stores.IStore', {
    extend: 'Ext.data.Store',
    xtype: 'IStore',
    updateRow: function (data: any[]) {
        var idField: string = this.proxy.proxyConfig.reader.idProperty;
        if (idField) {
            if (data.length > 0) {
                if (data[0][idField] > 0) {
                    var rec = Ext.create(this.model.modelName, data[0])
                    this.data.replace(data[0][idField], rec);
                    return true;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
});

ExtFK.Events.UpdateEvent(obj, function (ret: cvEventsList[]) {
    if(myStore.updateRow(ret))th.up().up().up().close();
});

Но решил частично. Данные обновляются, но не перерисовываются, только после сортировки, например.
Как бы перерисовать одну строку?

Пробовал добавить
Код: javascript
1.
this.fireEvent('update', this, rec, Ext.data.Model.COMMIT, ["Name"]);

ноль реакции.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38380408
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наконец-то нашел время - давай по порядку:

> Смотрел этот пример, не понял, откуда форма знает, какой Store апдейтить.
Она update'тит не Store, а record ( Ext.form.Basic.updateRecord() )
Код: 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.
....
     setActiveRecord: function(record){
         this.activeRecord = record;
         if (record) {
             this.down('#save').enable();
            this.getForm().loadRecord(record);
         } else {
             this.down('#save').disable();
             this.getForm().reset();
         }
     },

     onSave: function(){
         var active = this.activeRecord,
             form = this.getForm();

         if (!active) {
             return;
         }
         if (form.isValid()) {
            form.updateRecord(active);
             this.onReset();
         }
     },
....
             listeners: {
                 selectionchange: function(selModel, selected) {
                     main.child('#form').setActiveRecord(selected[0] || null);
                 }
             }
....



> У меня другая архитектура.
Код: javascript
1.
2.
3.
       proxy: {
           type:'memory',
           }


А чё memory-то? Смотри... В выше приведенном примере Store ж - ajax'овый... В форму передается record, это record формой рихтуется, а Store уже сам заботится об отправке, обновлении и пр.

> Решил проблему так
См Ext.data.proxy.Ajax.processResponse() -> operation.commitRecords(result.records) -> Ext.data.Model.commit()

> Но решил частично. Данные обновляются, но не перерисовываются, только после сортировки, например.
> Как бы перерисовать одну строку?
>
>Пробовал добавить
Код: javascript
1.
this.fireEvent('update', this, rec, Ext.data.Model.COMMIT, ["Name"]);


> ноль реакции.
А если Ext.data.AbstractStore.afterCommit() дернуть? rec - честный/нормательный? На худой конец если event не пробулькивается дерните напрямую Ext.grid.View.onUpdate()

P.S. Но, если честно, то до таких ньюансов в std приложении опускаться не дОлжно... Может, все-таки, пересмотреть и замутить по человечески?..

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38380468
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За'check'айте autoSync и попробуйте рихтонуть запись посредством формы...
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38380710
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Softпопробуйте рихтонуть запись посредством формы...Отличная идея! :)
Раскурил исходник form.updateRecord, сделал как в нем и все заработало:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    updateRow: function (data: any[]) {
        if (data.length > 0) {
            var idField: string = this.proxy.proxyConfig.reader.idProperty;
            var idValue: number = data[0][idField]
            if (idValue > 0) {
                var rec = this.getAt(this.findExact(idField, idValue)); 
                rec.beginEdit();
                rec.set(data[0]);
                rec.endEdit();
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38380733
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftМожет, все-таки, пересмотреть и замутить по человечески?..Набор полей формы и грида отличается, а одноименные поля могут иметь разное представление. Просто передавать запись из сторе в форму бессмысленно, а писать рендеры для грида тупо и непродуктивно. Лучше отправить данные на сервер в формате формы, а вернуть в формате вьюшки, которая служит источником записей для грида.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38380776
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offAntonariy/me думает: хазяїн знає, що кобилі робить...


_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38400156
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю treegrid, на этот раз по-человечески.

Код: 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.
Ext.define('Catalogue.Model', {
    extend: 'Ext.data.Model',
    fields: ['CatalogueID', 'Code', 'Classificator', 'Name', 'ObjCount']
});

Ext.define('Catalogue.Store', {
    extend: 'Ext.data.TreeStore',
    model: 'Catalogue.Model',
    autoLoad: true,
    nodeParam: "ParentID",
    defaultRootId:1,
    proxy: {
        type: 'ajax',
        url: baseURL + 'GetChildren', 
        reader: {
            type: 'json',
            idProperty: "CatalogueID",
        }
    }
});

Ext.define('Catalogue.Tree', {
    extend: "Ext.tree.Panel",
    xtype:"mcTree",
    loadMask: true,
    rootVisible:false,
    store: Ext.create("Catalogue.Store"),
    columns: [
        {
            xtype: 'treecolumn',
            text: 'ID',
            width: 70,
            align:'right',
            dataIndex: 'CatalogueID',
        }, {
            text: 'Код',
            width: 100,
            align: 'center',
            dataIndex: 'Code'
        }, {
            text: 'Классификатор',
            width: 100,
            align: 'center',
            dataIndex: 'Classificator'
        }, {
            text: 'Наименование',
            align: 'left',
            flex:1,
            dataIndex: 'Name'
        }, {
            text: 'Кол-во объектов',
            align: 'center',
            dataIndex: 'ObjCount'
        }
    ]
});

aoutoLoad есть, defaultRootId есть, корень прячу. Чего дереву еще не хватает, что бы сделать запрос первой ветки при создании?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38402239
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм... Скопировал прям из Вашего поста - ругнулось тока на:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Ext.define('Catalogue.Store', {
      extend:'Ext.data.TreeStore',
      model:'Catalogue.Model',
      autoLoad:true,
      nodeParam:"ParentID",
      defaultRootId:1,
      proxy: {
          type:'ajax',
          url: baseURL +'GetChildren',
          reader: {
              type:'json',
              idProperty:"CatalogueID",
          }
      }
});


Убрал baseURL и запрос - пошел, как дети в школу... Надеюсь
Код: javascript
1.
2.
3.
4.
5.
Ext.onReady(function () {
....
     Ext.create("Catalogue.Tree");
....
});


имеет место?

ExtJS 4.2.1.883
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38405710
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все в порядке, у меня путь был указан не полностью.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38406425
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопросы по дереву:
1) Можно ли сделать так, чтобы узлы при даблклике не разворачивались?
2) Можно ли указать, что у ветки нет потомков, чтобы узел не рисовался?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38406956
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> 1) Можно ли сделать так, чтобы узлы при даблклике не разворачивались?
тынць -> тынць -> тынць ???

> 2) Можно ли указать, что у ветки нет потомков, чтобы узел не рисовался?
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.NodeInterface-cfg-leaf
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38406982
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо)
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38419345
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft> 1) Можно ли сделать так, чтобы узлы при даблклике не разворачивались?
тынць -> тынць -> тынць ???А как этот конфиг задать? Это не проканало:
Код: javascript
1.
2.
extend: "Ext.tree.Panel",
view: { toggleOnDblClick: false } 




И еще вопросы: добавляю ноду в дерево:
Код: javascript
1.
tree.store.getNodeById(parentId).appendChild(obj[0]);

Если родительская нода была с leaf=true, как ее сделать папкой?
Если родительская ветка была с leaf=false, но не развернута, то при разворачивании в ней отображаются только потомки, полученные с сервера, а добавленный нет. Почему?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38419602
Stupid_BOT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
Если родительская нода была с leaf=true, как ее сделать папкой?
parentNode.set('leaf', false);

Если родительская ветка была с leaf=false, но не развернута, то при разворачивании в ней отображаются только потомки, полученные с сервера, а добавленный нет.
А если родительская ветка была с leaf=false и развёрнута, - добавленный потомок отображается ?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38419611
Stupid_BOT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
> А как этот конфиг задать? Это не проканало:
>
> extend: "Ext.tree.Panel",
> view: { toggleOnDblClick: false }

Не в конфигурации. Переопределяешь у созданного экземпляра:
myTreePanel.view.toggleOnDblClick = false;
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38419703
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stupid_BOTА если родительская ветка была с leaf=false и развёрнута, - добавленный потомок отображается ?Да.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38419832
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyStupid_BOTА если родительская ветка была с leaf=false и развёрнута, - добавленный потомок отображается ?Да.Все переврал.
Наоборот, при разворачивании отображается только новая ветка, а существующие с сервера не забираются. Но это не проблема, просто не буду добавлять, если ветка не развернута.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38420143
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация такова: на форме есть поле, являющееся внешним ключом, но комбобокс для него не подходит, потому что данных во внешней таблице много, к тому же это дерево. То есть нужно в самом поле писать текст, где-то еще хранить id, а само значение выбирать из псевдомодального диалога, вызываемого с помощью кнопки рядом с полем.

Есть ли в ExtJS встроенные механизмы для разруливания такой ситуации?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38420964
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyEx_Soft> 1) Можно ли сделать так, чтобы узлы при даблклике не разворачивались?
тынць -> тынць -> тынць ???А как этот конфиг задать? Это не проканало:
Код: javascript
1.
2.
extend: "Ext.tree.Panel",
view: { toggleOnDblClick: false }



http://stackoverflow.com/questions/8238180/in-extjs-how-dont-expand-in-tree-on-double-click
Код: javascript
1.
2.
3.
4.
5.
....
viewConfig: {
          toggleOnDblClick: false
     },
....



_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38421802
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    Ext.define('IForm', {
        extend:'Ext.form.Panel',
        buttons: [
            {
                text: 'Сохранить',
                style: "font-size:16pt;font-weight:bold"

            },
            {
                text: 'Отмена',
                style: { fontSize: "12pt" }
            }
        ]
    });

Результат применения стилей вызывает недоумение. Внутренности кнопки состоят из двух спанов:
Код: html
1.
2.
<span id="button-1069-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on" style="line-height: 44px;">Сохранить</span>
<span id="button-1069-btnIconEl" class="x-btn-icon-el " style="" unselectable="on" role="img"></span>

Так вот стиль применяется ко второму, где никакого текста нет. Что я неправильно делаю?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422159
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
....
..btn1 .x-btn-inner
{
	font-size: 16pt;
	font-weight: bold;
}
....

....
	buttons: [
		{
			text: "Button# 1",
			cls: "btn1"
		}
	],
....



_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422164
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
....
..btn1 .x-btn-inner
{
	font-size: 16pt;
	font-weight: bold;
}
....

....
	buttons: [
		{
			text: "Button# 1",
			cls: "btn1"
		}
	],
....



_________________
"Helo, word!" - 17 errors 56 warnings
Прискорбно :(
Стили при такой развесистой объектной архитектуре дОлжно менять в масштабах глобальных изменений внешнего вида, а не пары кнопочек в отдельном месте.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422178
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 09.10.2013 10:28 pm, Antonariy wrote:
> Стили при такой развесистой объектной архитектуре дОлжно менять в масштабах глобальных изменений внешнего вида, а не пары кнопочек в отдельном месте.
Theming ???

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422298
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftOn 09.10.2013 10:28 pm, Antonariy wrote:
> Стили при такой развесистой объектной архитектуре дОлжно менять в масштабах глобальных изменений внешнего вида, а не пары кнопочек в отдельном месте.
Theming ???

_________________
"Helo, word!" - 17 errors 56 warnings
Я имею ввиду, что вот такой шрифт должен быть только у кнопок в подвале формы, и я его хотел задать в единственном месте в прототипе формы. А с cls: "btn1" получается, что я должен распылять код, ответственный за прототип формы, по разным модулям.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422426
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 10.10.2013 7:28, Antonariy wrote:
> Я имею ввиду, что вот такой шрифт должен быть только у кнопок в подвале формы, и я его хотел задать в единственном месте в прототипе формы. А с cls: "btn1" получается, что я должен распылять код, ответственный за прототип формы, по разным модулям.
Дык, родите свою кнопку с уже прибитым в ней гвоздями cls 'ом и пихайте ее в подвал only. А в остальных местах - штатные кнопки...

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422486
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftДык, родите свою кнопку с уже прибитым в ней гвоздями cls 'ом и пихайте ее в подвал only. А в остальных местах - штатные кнопки...Вопрос не в своя-штатная, а том, что я не могу свою определить атомарно . Ширина, высота и cls прибиты гвоздями, а содержимое cls'а болтается где-то в космосе — в css.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422545
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все равно в первом спане стиль забивается правилом темы .x-btn-default-small .x-btn-inner, где прописаны все параметры шрифта. В случае с cls с этим ничего не поделаешь (кроме костыля, в котором интересующие свойства из правила выставляются в inherit, и который неизвестно как аукнется в других кнопках), таковы правила css, но правила, задаваемые через объектную модель, должны работать как от них ожидается.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422567
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyчерез объектную модельЧерез конфиг style в смысле.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422593
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 10.10.2013 10:53, Antonariy wrote:
> ... но правила, задаваемые через объектную модель, должны работать как от них ожидается.
Ну, что Вам на это сказать...
/me вспоминает:
http://sp.sz.ru/nast_progr_.html лучшая литература для хакера - распечатка программы

Посмотрите в исходниках, что они со style творят...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422607
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftПосмотрите в исходниках, что они со style творят...Уже смотрел — адово комментируют, больше ничего пока не разобрал.

Код: css
1.
2.
3.
          .x-btn-default-small .x-btn-inner {font-size:inherit;font-weight:inherit}
          .save-button {font-size:11pt;font-weight:bold}
          .close-button {font-size:11pt;}

Такой костыль сработал, но лучше попробую сделать проставление стиля непосредственно dom-элементу в initComponent.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38422644
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы мне, на момент initComponent в контексте объекта еще нет dom.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38438200
Фотография 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.
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.
function createTreeStore(sModel: string, sUrl: string, extraParams?: any): any {
    var store = Ext.create('Ext.data.TreeStore', {
        model: sModel,
        nodeParam: "ParentID",
        defaultRootId: 0,
        pageSize: 50,
        _cp: 1,
        proxy: {
            type: 'ajax',
            reader: {
                type: 'json',
                root: 'Records',
                totalProperty: 'TotalCount'
            },
            limitParam: 'Records',
            pageParam: 'Page',
            extraParams: extraParams,
            url: sUrl
        },
        getTotalCount: function () { 
            var rdr = this.proxy.reader;
            return rdr.jsonData ? rdr.jsonData[rdr.totalProperty] : 1;
        },
        loadPage: function (pageNumber, recordCount) {
            if (pageNumber) this._cp = pageNumber;
            var prx = this.proxy;
            var url = sUrl + "?" + prx.pageParam + "=" + this._cp + "&" + prx.limitParam + "=" + this.pageSize;
            if (prx.extraParams) for (var p in prx.extraParams) url += "&" + p + '=' + prx.extraParams[p];
            this.proxy.url = url;
            this.load()
        },
        nextPage: function () {
            this._cp += 1;
            this.loadPage();
        },
        previousPage: function () {
            this._cp += 1;
            this.loadPage();
        }
    });
    store.__defineGetter__("currentPage", function () {
        return this._cp;
    });
    store.__defineSetter__("currentPage", function (val) {
        this._cp=val;
    });
    return store;
}

function createPageBar(store): any {
    return Ext.create('Ext.PagingToolbar', {
        store: store,
        displayInfo: true,
        displayMsg: 'Отображаются записи {0} - {1} из {2}',
        emptyMsg: "Нет записей"
    })
}

Ext.define('IPagedTree', {
    extend: "Ext.tree.Panel",
    initComponent: function () {
        if (!this.store) this.store = createTreeStore(this.model, this.url, this.extraParams);
        this.bbar = createPageBar(this.store);
        this.store.loadPage(1);
        this.callParent();
    }
});
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38439661
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как в событии store load получить ответ сервера, если сервер вернул 500 и описание проблемы? Этой фигни как-то маловато:
Код: javascript
1.
2.
3.
4.
5.
            load: function (th, records, successful, eOpts) {
                if (!successful) {
                    alert('Internal server error');
                }
            }
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38439929
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 24.10.2013 12:32, Antonariy wrote:

> А как в событии store load получить ответ сервера, если сервер вернул 500 и описание проблемы?
Именно в store? Попробуйте в exception eOpts дополнить недостающей Вам info...

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38440190
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не обязательно в самом store, можно подоткнуть, например, в любое место в процедуре createTreeStore.
Ссылку посмотрел, но не понял, как эту штуку
Код: javascript
1.
2.
3.
4.
5.
new Ext.data.proxy.Ajax({
    url: 'users.json',
    model: 'User',
    reader: 'json'
});

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

> Ссылку посмотрел, но не понял, как эту штуку

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
new  Ext.data.proxy.Ajax({
      url:'users.json',
      model:'User',
      reader:'json',
     listeners: {
            exception: function (proxy, response, operation, eOpts) {
                if (window.console && console.log)
                    console.log("Proxy.Exception (%o)", arguments);
     }
});



_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38440411
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не настолько я недогадлив :).
Я не понял, как ВСЮ эту штуку подоткнуть к store. Не в так ли случайно?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
store:{
    proxy:{
        listeners:{
            exception: function(){}
        }
    }
}
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38440564
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 10/24/2013 07:07 PM, Antonariy wrote:

> Не в так ли случайно?
Ну - да... А как еще по другому Вы хотите?

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38441195
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему у меня в гридах и деревьях скролла нет, что я не так делаю? Прототип такой:

Код: javascript
1.
2.
3.
4.
5.
6.
        extend: "Ext.tree.Panel",
        xtype: "CatalogueTree",
        border: 0,
        loadMask: true,
        rootVisible: false,
        viewConfig: { toggleOnDblClick: false },
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38441362
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
		Ext.create("Ext.window.Window", {
			layout: "fit", // !!!
			height: 200,
			width: 300,
			items: [grid]
		})


||
Код: sql
1.
2.
3.
4.
5.
6.
7.
		Ext.create("Ext.container.Viewport", {
			layout: "border",
			items: [{
				region: "center",
				layout: "fit", // !!!
				border: false
			}]


???
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38441468
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fit не подходит, у меня два айтема, тулбар растягивается на весь контейнер. Ладно диалог, в нем я подберу фиксированную высоту, а как быть с основным окном?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        <style>
          .header {height:110px;position:relative;width:100%}
          .title {float:left;color:#004E9B;font-size:150%;font-family:Lucida Console;margin:1em}

          #menu {position:absolute;bottom:0;width:100%;}
          #content {position:absolute;top:110px;bottom:0;width:100%}
        </style>

<body >
        <div class="header">
          <div class="title">Панель администратора</div>
          <div id="menu"><xsl:text></xsl:text></div>
        </div>
        <div id="content">
          <xsl:text></xsl:text>
        </div>
</body>

Меню само по себе, табы сами по себе, контейнер для них имеет заданную резиновую высоту, но табы тоже состоят из двух айтемов, тулбара и грида/дерева.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38441472
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот жеж блин, надо было лепить тулбары в dockedItems самого грида.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38441651
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перенес тулбар в грид, но опять не выходит каменный цветок (с диалогом все получилось). Разметка та же, вот контейнер для табов, добавление таба и прототип таба, являющегося по совместительству гридом:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    Ext.create('Ext.tab.Panel', {
        renderTo: 'content',
        layout: "fit",
        id:"tabs"
    });

function addTab2(className: string): void {
    var obj = Ext.create(className);
    Ext.getCmp("tabs").add(obj).show();
    if (obj.store) obj.store.load();
}

Ext.define('IGridEditor', {
    extend: 'Ext.grid.Panel',
    xtype: 'IGridEditor',
    closable: true,
}) //тулбар создается в initComponent

Что опять не так?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38441677
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 25.10.2013 17:12, Antonariy wrote:
> Что опять не так?
Похоже Вы пытаетесь засунуть панель в панель. Этого делать не надо - грид уже и так ЭстЪ панелЪ. тынць
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38441752
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел тему , где вы решали решал туже самую проблему, но решения не понял. Если в моем коде поменять tab.Panel на Viewport и что-то в него добавить, то он растягивается на всю страницу.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38442013
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он растягивается на всю страницуДогадался прочитать про viewport. Вопрос закрыт.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Буду тут про ExtJS спрашивать...
    #38792133
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делать Ext.create("My.Some.Class"), который не был объявлен через Ext.define, то ext пытается подгрузить соответствующий файл My/Some/Class.js

Можно ли настроить ExtJS так, чтобы она использовала маршрут, который угоден мне? Например: GetConfig.ashx?ClassName=My.Some.Class
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38792333
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

В итоге-то - сенча - это тру?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38792492
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итоги подводить рано.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38793211
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЕсли делать Ext.create("My.Some.Class"), который не был объявлен через Ext.define, то ext пытается подгрузить соответствующий файл My/Some/Class.js

Можно ли настроить ExtJS так, чтобы она использовала маршрут, который угоден мне? Например: GetConfig.ashx?ClassName=My.Some.ClassРазобрался. Нужно напичкать Loader путями для каждого класса.
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38793297
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyAntonariyЕсли делать Ext.create("My.Some.Class"), который не был объявлен через Ext.define, то ext пытается подгрузить соответствующий файл My/Some/Class.js

Можно ли настроить ExtJS так, чтобы она использовала маршрут, который угоден мне? Например: GetConfig.ashx?ClassName=My.Some.ClassРазобрался. Нужно напичкать Loader путями для каждого класса.может попробовать URL Rewrite?
...
Рейтинг: 0 / 0
Буду тут про ExtJS спрашивать...
    #38805046
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечAntonariyпропущено...
Разобрался. Нужно напичкать Loader путями для каждого класса.может попробовать URL Rewrite?Этот? http://www.microsoft.com/en-us/download/details.aspx?id=7435

А можно ли что-то подобное заюзать при отладке в VS2013? IIS express этот модуль не воспринимает.
...
Рейтинг: 0 / 0
82 сообщений из 82, показаны все 4 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Буду тут про ExtJS спрашивать...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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