Kendo Grid Перетаскиваемые строки с шаблоном Kendo

Я собираюсь реализовать поведение перетаскивания с сеткой кендо, которая заполняется с использованием шаблона. Как я могу добиться перетаскивания строк и изменения порядка с помощью сетки кендо.


person Chinthaka Devinda    schedule 13.01.2014    source источник


Ответы (3)


    .Orderable()

Работает удовольствие. Может быть, попробуйте ".Dragable ()", хотя я немного не уверен в этом.

person Heberda    schedule 25.01.2014

Взгляните на мой демонстрационный код и попробуйте его реализовать.

var data = [
{ id: 1, text: "text 1", position: 0 },
{ id: 2, text: "text 2", position: 1 },
{ id: 3, text: "text 3", position: 2 }
]

var dataSource = new kendo.data.DataSource({
    data: data,        
    schema: {
        model: {
            id: "id",
            fields: {
                id: { type: "number" },
                text: { type: "string" },
                position: { type: "number" }
            }
        }
    }
});

var grid = $("#grid").kendoGrid({
 dataSource: dataSource,  
 scrollable: false,    
 columns: ["id", "text", "position"]            
}).data("kendoGrid");

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

grid.table/*.find("tbody > tr")*/.kendoDropTarget({
group: "gridGroup",
drop: function(e) {        
    var target = dataSource.get($(e.draggable.currentTarget).data("id")),
        dest = $(e.target);

    if (dest.is("th")) {
        return;
    }       
    dest = dataSource.get(dest.parent().data("id"));

    //not on same item
    if (target.get("id") !== dest.get("id")) {
        //reorder the items
        var tmp = target.get("position");
        target.set("position", dest.get("position"));
        dest.set("position", tmp);

        dataSource.sort({ field: "position", dir: "asc" });
    }                
}
});
person Jatin Patel    schedule 31.12.2015

поместите .Dragable(), но убедитесь, что вы сидите в нужном месте, требуется порядок. Иногда вы можете не получить ожидаемого результата, и это может произойти из-за невнимательности к заказу.

person Shaima Abukaff    schedule 31.12.2015