Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Copy/paste from excel into ExtJs-Grid? 
:(
    Опции темы
Killer_13
Дата 16.8.2012, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



update:
Хах, на счет никаких данных в колонках, то можно вот так... Работает.

Код

{
    'one' : '',
    'two' : '',
    'three' : ''
}


Но может есть какой то спец метод?

Это сообщение отредактировал(а) Killer_13 - 16.8.2012, 16:57
PM MAIL   Вверх
Killer_13
Дата 16.8.2012, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



update:

понял что делает selType, попробовал еще "multiSelect" - не то.
какая же опция отвечает за возможность выделения нескольких ячеек? :(
PM MAIL   Вверх
ExSoft
Дата 16.8.2012, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 29.6.2008

Репутация: 1
Всего: 1



Цитата(Killer_13 @ 16.8.2012,  17:51)
какая же опция отвечает за возможность выделения нескольких ячеек? :(

ложка дегтя
PM MAIL   Вверх
Killer_13
Дата 16.8.2012, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Цитата(ExSoft @  16.8.2012,  20:39 Найти цитируемый пост)
ложка дегтя 
 - Приплыли... :( А на счет заполнения Store в цыкле? Возможно же...

PM MAIL   Вверх
ExSoft
Дата 16.8.2012, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 29.6.2008

Репутация: 1
Всего: 1



Цитата(Killer_13 @ 16.8.2012,  20:53)
 - Приплыли... :(

А Вам какая печаль? Насколько я понял у Вас же задача copy -> paste (excell -> ext). По сему - зачем Вам вообще селект в ext'ах?

Цитата(Killer_13 @ 16.8.2012,  20:53)
А на счет заполнения Store в цыкле? Возможно же...

В смысле?
PM MAIL   Вверх
Killer_13
Дата 16.8.2012, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Цитата(Killer_13 @ 16.8.2012,  16:31)
Вот что получилось
Код

Ext.Loader.setConfig({
    enabled : true
});
Ext.Loader.setPath('Ext', '../../extjs');
Ext.require(['Ext.*']);

Ext.onReady(function() {

    Ext.create('Ext.data.Store', {
        storeId : 'myStore',
        fields : ['one', 'two', 'three'],
        data : {
            'items' : [{
                'one' : '1',
                "two" : "2",
                "three" : "3"
            },{
                'one' : '1',
                "two" : "2",
                "three" : "3"
            },{
                'one' : '1',
                "two" : "2",
                "three" : "3"
            },{
                'one' : '1',
                "two" : "2",
                "three" : "3"
            },{
                'one' : '1',
                "two" : "2",
                "three" : "3"
            },{
                'one' : '1',
                "two" : "2",
                "three" : "3"
            },]
        },
        proxy : {
            type : 'memory',
            reader : {
                type : 'json',
                root : 'items'
            }
        }
    });
    
    Ext.create('Ext.grid.Panel', {
        title : 'Copy/Paste Grid',
        store : Ext.data.StoreManager.lookup('myStore'),
        columns : [{
            header : 'A',
            dataIndex : 'one',
            editor : 'textfield'
        }, {
            header : 'B',
            dataIndex : 'two',
            editor : {
                xtype : 'textfield',
                allowBlank : false
            }
        }, {
            header : 'C',
            dataIndex : 'three',
            editor : 'textfield'
        }, {
            header : 'D',
        }, {
            header : 'E',
        }, {
            header : 'F',
        }, {
            header : 'G',
        }, {
            header : 'H',
            flex:1
        }],
        
        selType : 'cellmodel',
        plugins : [Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit : 2
        })],
        height : 400,
        width : 1000,
        selType: 'cellmodel',
        selModel: { mode: 'MULTI' },
        padding: 25,
        renderTo : 'grid'
    });

});



Не подскажете, почему не выделяются несколько ячеек одновременно, так сказать группа ячеек? В документации пишет, что за это отвечает свойство
Код

selType: 'cellmodel',
, но почему-то оно у меня не работает..


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

Я не ошибусь если предположу такое видение....?
Нужно вешать на ячейки какой-то обработчик, потом при двойном клике если ячейка пустая, то как-то все таки открывать ее и по ее закритии писать данные в Store.

Цитата

А Вам какая печаль? Насколько я понял у Вас же задача copy -> paste (excell -> ext). По сему - зачем Вам вообще селект в ext'ах?
 - да, но хотелось бы и это реализовать, ну если оно не заложено в 4 ексте, то не попрешь...


Цитата

В смысле?


А на счет loop я имел ввиду, как цыклом занести данные в Store?
Выше видно как я заполняю Store. 

Потом я придумал, что можно вот так забивать Store->data, чтоб ячейки были и пустые и редактировались.

Код

{
    'one' : '',
    'two' : '',
    'three' : ''
}

Вопрос в том, как мне их цыклом в Сторе->data загонять?


PM MAIL   Вверх
ExSoft
Дата 16.8.2012, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 29.6.2008

Репутация: 1
Всего: 1



Цитата(Killer_13 @ 16.8.2012,  21:30)
Вопрос в том, как мне их цыклом в Сторе->data загонять?

Код

    var
        createData = function(max) {
            var
                data = [];

            for(var i=0; i<max; ++i)
                data.push( { id: i, name: "Record# "+i } );

            return data;
        },
        store = Ext.create("Ext.data.Store", {
            fields: [
                { name: "id", type: "int" },
                "name"
            ],
            data: createData(1000)
        });

PM MAIL   Вверх
Killer_13
Дата 17.8.2012, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Что-то мне не оч получается. .:(
нужны просто пустые ячейки.

Код

Ext.Loader.setConfig({
    enabled : true
});
Ext.Loader.setPath('Ext', '../../extjs');
Ext.require(['Ext.*']);

Ext.onReady(function() {
    

    var createData = function(max) {
        var data = [];
        for (var i = 0; i < max; ++i)
            data.push({
                id : i,
                name : ''
            });
        return data;
    }
    
    var  myStore = Ext.create("Ext.data.Store", {
        fields : [{name : 'a'},{name : 'b'},{name : 'c'},{name : 'd'},{name : 'e'},{name : 'f'},{name : 'g'},{name : 'h'},],
        data : createData(1000)
    }); 
    
    
        Ext.create('Ext.grid.Panel', {
        title : 'Copy/Paste Grid',
        store : Ext.data.StoreManager.lookup('myStore'),
        columns : [{
            header : 'A',
            dataIndex : 'a',
            editor : 'textfield'
        }, {
            header : 'B',
            dataIndex : 'b',
            editor : {
                xtype : 'textfield',
                allowBlank : false
            }
        }, {
            header : 'C',
            dataIndex : 'c',
            editor : 'textfield'
        }, {
            header : 'D',
            dataIndex : 'd',
            editor : 'textfield'
        }, {
            header : 'E',
            dataIndex : 'e',
            editor : 'textfield'
        }, {
            header : 'F',
            dataIndex : 'f',
            editor : 'textfield'
        }, {
            header : 'G',
            dataIndex : 'g',
            editor : 'textfield'
        }, {
            header : 'H',
            dataIndex : 'h',
            editor : 'textfield',
            flex:1
        }],
        
        selType : 'cellmodel',
        plugins : [Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit : 2
        })],
        height : 400,
        width : 1000,
        selType: 'cellmodel',
        selModel: { mode: 'MULTI' },
        multiSelect:'true',
        padding: 25,
        renderTo : 'grid',
        listeners:{
            cellclick: function(iView, iCellEl, iColIdx, iRecord, iRowEl, iRowIdx, iEvent) {
             console.log('Column: ',iView.getGridColumns()[iColIdx].dataIndex);
             
            }
        }
    });

    
});


PM MAIL   Вверх
ExSoft
Дата 18.8.2012, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 29.6.2008

Репутация: 1
Всего: 1



Код

    var createData = function(max) {
        var
          data = [],
          o;

        for (var i = 0; i < max; ++i)
        {
            o = {};
            for(var j=0x061; j<0x069; ++j)
                o[String.fromCharCode(j)] = "";
            data.push(o);
        }

        return data;
    }

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0758 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.