2016-10-21 2 views
0

Когда я пытаюсь вставить в пустую область внутри webix datatable, ничего не происходит, и событие onPaste не происходит.Пользовательское вставка в пустое datatable

В принципе, я хочу добавить новый элемент через onPaste, даже если существующие элементы данных не выбраны. Но возможно ли это?

Что-то вроде операции «вставить» в списке, но в моем случае использование datatable может быть пустым после init (в следующем примере я добавил элемент для работы буфера обмена). Вот оно:

http://webix.com/snippet/9ae6635b

webix.ui({ 
    id:'grid', 
    view:'datatable', 
    select:true, 
    clipboard:'custom', 
    editable:true, 
    columns:[ 
    { id:'id' }, 
    { id:'name', fillspace:true, editor:"text" }, 
    { id:'details' }  
    ], 
    data: [ 
    { } 
    ], 
    on:{ 
    onPaste: function(text){   
     this.add({ id:webix.uid(), name:text }) 
    } 
    } 
}); 

Любые предложения приветствуются.

+0

Эй, так как вы включили «выбрать: правда», следовательно, для того, чтобы реализовать свой «Вставить» вы должны первым выберите любую строку, а затем CTRL + V вставляет скопированный текст. Хотя, пользовательский код, написанный вами для Paste, является правильным. – jayantish

+0

этого недостаточно для желаемого варианта использования. Однако я справился с этим! – Loj

ответ

0

Я обнаружил, что «clipbuffer» имеет фокус только тогда, когда у datatable есть выбор. Скорее всего, это требуется для редактирования данных, определения местоположения или чего-то еще. Во всяком случае, «clipbuffer» может быть сфокусирована вручную:

var clipEvent = webix.event($$("grid").getNode(), "click", function(){ 
     webix.clipbuffer.focus(); 
}); 

Пример: http://webix.com/snippet/aa441e70

Смежные вопросы