Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2014, 23:04
Аспирант
Отправить личное сообщение для treasury Посмотреть профиль Найти все сообщения от treasury
 
Регистрация: 26.08.2014
Сообщений: 49

grid scrolling
Есть окно, в котором grid таблица. Что нужно указать чтобы данные скролились при этом тулбар и наименование колонок оставались на месте? Сейчас у меня скрол стоит в окне, но этот вариант скролит тулбар и наименование колонок. Код ниже:

var win = new Ext.Window({

        modal: true,
        width:600,
        height:400,
        autoScroll: true,
        title: 'Свойства объекта: '+record.data.nm,
        layout:'auto',
        bodyStyle:{'background-color': '#FFFFFF'},

        items: [
            {
                xtype: 'gridpanel',
                title: 'My Grid Panel',
                itemId: 'Trail',
                id: 'Trail',
                header: false,
                width: '100%',
                store: 'Trailer',

                columns: [
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'name',
                        width: '50%',
                        text: 'Наименование',
                        blankText: 'Содержимое поля не может быть пустым',
                        flex: 1,
                        editor: {
                            // defaults to textfield if no xtype is supplied
                            allowBlank: false,
                            blankText: 'Содержимое поля не может быть пустым'
                        }
                    },
                    {
                        xtype: 'numbercolumn',
                        dataIndex: 'id',
                        formatter: 'round(0)',
                        format: '0',
                        width: '25%',
                        text: 'Код',
                        editor: {
                            allowBlank: false,
                            formatter: 'round(0)',
                            blankText: 'Содержимое поля не может быть пустым'

                        }

                    },
                    {
                        xtype: 'numbercolumn',
                        dataIndex: 'width',
                        width: '25%',
                        format: '0.00',
                        text: 'Ширина',
                        editor: {
                            //xtype: 'numbercolumn',
                            allowBlank: false,
                            blankText: 'Содержимое поля не может быть пустым'
                        }

                    }                   

                ],


                tbar: [  // верхний тулбар с кнопками удаления и вставки

                    {

                        text: 'Добавить прицеп',
                        icon : 'image/add.jpg',

                        handler : function() {
                            rowEditing.cancelEdit();

                            // Create a model instance
                            var r = Ext.create('MyApp.model.Trailer', {
                                name: 'Новый прицеп',
                                id: '0',
                                width: '0.00'
                            });

                            store.insert(0, r);
                            rowEditing.startEdit(0, 0);
                        }
                    },


                    {

                        itemId: 'removeTrail',
                        text: 'Удалить прицеп',
                        icon : 'image/delete-icon.png',

                        handler: function() {

                        var sm = Ext.getCmp('Trail').getSelectionModel();
                                rowEditing.cancelEdit();
                            rec = sm.getSelection();

                            Ext.Msg.confirm("Удаление", "Вы действительно хотите удалить прицеп<b> " + rec[0].data.name +'</b>?', function(button){

                            if (button == 'yes') {

                                store.remove(rec);

                            if (store.getCount() > 0) {
                                sm.select(0);
                            }

            } else {
                return false;
            }
        });

                        },

                        disabled: true

                    }],

                plugins: [rowEditing],
                listeners: {
                    'selectionchange': function(view, records) {
                        Ext.getCmp('Trail').down('#removeTrail').setDisabled(!records.length);
                    }
                }

            }

        ]

    });

    win.show();
}
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2014, 08:01
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

а можно скрин показать? как сейчас
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2014, 10:30
Аспирант
Отправить личное сообщение для treasury Посмотреть профиль Найти все сообщения от treasury
 
Регистрация: 26.08.2014
Сообщений: 49

Сообщение от skrudjmakdak Посмотреть сообщение
а можно скрин показать? как сейчас


Но вы поняли у меня скролится весь грид и tbar, если убираю autoScroll: true в настройках окна, тогда скрол убирается и нельзя увидеть все данные.
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2014, 10:42
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

оно?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Paging Grid Example</title>

    <link rel="stylesheet" type="text/css" href="http://docs.sencha.com/extjs/4.2.2/extjs-build/resources/css/ext-all-neptune-debug.css" />
    <script type="text/javascript" src="http://docs.sencha.com/extjs/4.2.2/extjs-build/ext-all.js"></script>
    <script type="text/javascript">
Ext.onReady(function(){
    var store = Ext.create('Ext.data.Store', {
        pageSize: 50,
        fields: ['title', 'username'],
        remoteSort: true,
        proxy: {
            // load using script tags for cross domain, if the data in on the same domain as
            // this page, an HttpProxy would be better
            type: 'jsonp',
            url: 'http://www.sencha.com/forum/topics-browse-remote.php',
            reader: {
                root: 'topics',
                totalProperty: 'totalCount'
            },
            // sends single sort as multi parameter
            simpleSortMode: true
        },
		autoLoad: true
    });

    var grid = Ext.create('Ext.grid.Panel', {
        width: 700,
        height: 500,
        store: store,
        columns:[{
            id: 'topic',
            text: "Topic",
            dataIndex: 'title',
            flex: 1,
            sortable: false
        },{
            text: "Author",
            dataIndex: 'username',
            width: 100
        }],
		tbar: [{xtype: 'button', text: 'click me'},
		{xtype: 'button', text: 'click me'}]
    });

Ext.create('Ext.window.Window', {
    title: 'Hello',
    height: 200,
    width: 400,
    layout: 'fit',
    items: grid
}).show();

});
	</script>
</head>
<body>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2014, 10:52
Аспирант
Отправить личное сообщение для treasury Посмотреть профиль Найти все сообщения от treasury
 
Регистрация: 26.08.2014
Сообщений: 49

Я понял для окна нужно было указать layout: 'fit'. Спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 09.09.2014, 17:00
Аспирант
Отправить личное сообщение для treasury Посмотреть профиль Найти все сообщения от treasury
 
Регистрация: 26.08.2014
Сообщений: 49

Скажите пожалуйста имею grid код выше, при добавлении новой строки и ввода данных, как эти данные я могу собрать чтобы можно было отправить их на сервер? Спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 10.09.2014, 13:54
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

В стор добавьте autosync = true и пропишите в прокси адрес для добавления данных: http://docs.sencha.com/extjs/5.0.1/#...Server-cfg-api
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[ExtJS 4] Rowexpander и Grid. Раскрыть заданный пункт. Rmxbot ExtJS 0 20.06.2012 11:47
Как сделать реконфигурацию фильтра динамического Grid? Сергей З ExtJS 0 11.01.2012 15:16
Grid RowExpander Black_Prince ExtJS 0 14.07.2011 13:41
Использование combobox поля в grid dionic ExtJS 0 26.05.2011 14:12
Выделит row в grid mycoding ExtJS 1 29.07.2010 15:28