Kanban Board основана на DataStore, неиерархическом (встроенном) хранилище. Именно поэтому Kanban поддерживает API DataStore, включая методы, события и свойства.
В этом разделе вы познакомитесь со свойствами Kanban для работы с данными, унаследованными от DataStore. Особенности Kanban API рассмотрены в статьях: Особенности Kanban API и Обработка Событий.
Чтобы получить объект элемента данных, используйте метод getItem:
webix.ui({
    view:"kanban",
    id: "myBoard",
    cols:[
        { 
            header:"Backlog",
            body:{ view:"kanbanlist", status:"new" }
        },
        { 
            header:"In Progress",
            body:{ view:"kanbanlist", status:"work" }
        }
    ],
    data:[
        {id:"task1", text:"Drag-n-drop support", status: "new", $order: 0},
        {id:"task2", text:"Uploader for the form", status: "work", $order: 0},
        // ... другие карточки
    ]
});     
 
// переменная 'task' будет содержать объект соответствующей записи Kanban
var task = $$("myBoard").getItem("task1");
 
// вы можете получить доступ к полям объекта с данными карточки
var title = task.text;//-> "Drag-n-drop support"
Метод getItem() возвращает объект элемента данных, содержащий уникальный id и набор других свойств:
Чтобы узнать представлен ли определенный элемент в наборе данных, используйте метод exists:
webix.ui({
    view:"kanban",
    id: "myBoard",
    cols:[
        { 
            header:"Backlog",
            body:{ view:"kanbanlist", status:"new" }
        },
        { 
            header:"In Progress",
            body:{ view:"kanbanlist", status:"work" }
        }
    ],
    data:[
        {id:"task1", text:"Drag-n-drop support", status: "new", $order: 0},
        {id:"task2", text:"Uploader for the form", status: "work", $order: 0}
    ]
});      
 
$$("myBoard").exists("task1");  // -> true
$$("myBoard").exists("task2222");   // -> false
Вы можете добавлять новые карточки с помощью метода add:
$$("myBoard").add({
    text: "Kanban docs",
    status: "new",
    // ... другие поля данных    
});
Чтобы попасть в список, добавляемый элемент должен содержать свойство status.
Чтобы изменить текущее значение любого свойства элемента, воспользуйтесь методом refresh или updateItem:
var task = $$("myBoard").getItem("task1");
task.text = "Ticket 225";
 
$$("myBoard").refresh("task1");
// или
$$("myBoard").updateItem("task1", task);
Оба метода работают одинаково.
Чтобы удалить элемент, примените метод remove:
// удаляет элемент
$$("myBoard").remove(itemId);
Пример удаления выбранного элемента приведен ниже:
var id = $$("myBoard").getSelectedId();
if(!id){
    return webix.alert("Please selected a card that you want to remove!");
}
$$("myBoard").remove(id);
Все элементы можно удалить из доски Kanban с помощью метода clearAll:
$$("mylist").clearAll();
Больше информации о добавлении и удалении элементов вы можете найти здесь.
Related sample: Kanban: Adding New Items
Чтобы пройтись по всей коллекции данных используйте метод each класса DataStore.
webix.ui({
    view:"kanban",
    id:"myBoard",
    cols:[
        { 
            header:"Backlog",
            body:{ view:"kanbanlist", status:"new" }
        },
        { 
            header:"In Progress",
            body:{ view:"kanbanlist", status:"work" }
        }
    ],
    data:[
        { id:"task1", text:"Drag-n-drop support", status:"new", $order:0 },
        { id:"task2", text:"Uploader for the form", status:"work", $order:0 },
        // ... другие карточки
    ]
});
 
var titles = [];
$$("myBoard").data.each(function(obj){
    titles.push(obj.text);
});
//-> titles=["Drag-n-drop support", "Uploader for the form"]
Этот код аналогичен обычному циклу For:
for (i = 0; i < data.length; i++ ){
    titles.push(obj.text);
}
Чтобы показывать только часть загруженных данных, в соответствии с заданным правилом, вы можете применить фильтрацию.
Вы можете фильтровать данные по одному свойству. Предположим, вам необходимо показать только задачи, назначенные определенному исполнителю:
webix.ui({
    view:"kanban", 
    id:"myBoard",
    cols:[
        { 
            header:"Backlog",
            body:{ view:"kanbanlist", status:"new" }
        },
        { 
            header:"In Progress",
            body:{ view:"kanbanlist", status:"work" }
        }
    ],
    data:[
        {id:"task1", text:"Drag-n-drop support", status: "new", personId: "1", ...},
        {id:"task2", text:"Uploader for the form", status: "work", personId: "2", ...},
        // ... другие карточки
    ]
});
 
$$("myBoard").filter("#personId#","1");
Чтобы отфильтровать карточки по нескольким свойствам, можно задать сложное правило фильтрации. В этом случае вы можете задать функцию, которая будет возвращать true или false. Элемент будет отображен, если функция возвращает true:
webix.ui({
    view:"kanban", 
    id:"myBoard",
    cols:[
        { 
            header:"Backlog",
            body:{ view:"kanbanlist", status:"new" }
        },
        { 
            header:"In Progress",
            body:{ view:"kanbanlist", status:"work" }
        }
    ],
    data:[
        {id:"1", text:"Task 1", status: "new", personId: "1", projectId: "22", ...},
        {id:"2", text:"Task 2", status: "work", personId: "2", projectId: "22", ...},
        // ... другие карточки
    ]
});
 
$$("myBoard").filter(function(task){
    return task.personId == "1" && task.projectId == "22";
});