Можно ли перетащить строку за пределы сетки кендо?

Я заполняю сетку кендо парой строк и хочу реализовать функции перетаскивания между сеткой и другими HTML-компонентами.

Я могу найти множество ресурсов, рассказывающих о том, как перетаскивать/отбрасывать/сортировать строки внутри сетки, даже из одной сетки в другую, но на самом деле ничего о том, что находится за пределами сетки, в другой компонент.

Поддерживает ли это кендо ui-grid?

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

Любые другие предложения?


person roro    schedule 26.10.2015    source источник
comment
Как это не очень чисто? Сделайте tbody сетки перетаскиваемой, определите видимый элемент при перетаскивании и укажите цель перетаскивания. Если вы посмотрите на собственный код Kendo, именно так реализована реализация перетаскиваемых строк в его сетке.   -  person Brett    schedule 27.10.2015
comment
Ага, не сообразил раньше.   -  person roro    schedule 27.10.2015


Ответы (1)


Вы можете использовать метод kendoDropTarget(), чтобы назначить другой элемент html в качестве цели. Например, вот сетка и текстовая область HTML:

<div id="grid"></div>
<textarea id="dropHere" rows="3" cols="50"></textarea>

$("#grid table tbody > tr").kendoDraggable({
    group: "gridGroup",
    threshold: 100,
    hint: function(e) {
        return $('<div class="k-grid k-widget"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>');
    }
});

$("#dropHere").kendoDropTarget({
    group: "gridGroup",
    drop: function(e) { 
        e.draggable.hint.hide();

        var txt = '';
        $(e.draggable.element[0]).find("td").each(function(idx, td){
          txt += $(td).text() + '\n';
        });
        e.dropTarget.text(txt);
    }
});      

ДЕМО

person ezanker    schedule 26.10.2015
comment
спасибо за ваш отличный пример. Мне было интересно, можно ли продолжать добавлять строки, не теряя предыдущие перетаскиваемые строки? Как и в случае наличия нескольких информационных блоков строки в текстовой области. - person ComeRun; 27.01.2016