2

使用 Kendo UI,请告诉我如何从多列表视图中删除元素。当我选择任何项目时,它给了我价值,但我无法删除选定的元素。

PSB代码:

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


var d = $("#listview").kendoListView({
dataSource: data,
template: kendo.template($("#template").html()),
selectable: "multiple",
change: function() {
    var index = this.select().index(),
        dataItem = this.dataSource.view()[index];

    var d = $("#listview").data("kendoListView");
    alert(d.element.children().first());
    d.remove(dataItem.text);

    //log("id: " + dataItem.id + ", text: " + dataItem.text);
    var selected = $.map(this.select(), function(item) {
        return data[$(item).index()].id;
           });
    //data.remove(selected.id);
    //console.log(data);
    console.log(selected);
    //console.log("[" + selected.join(", ") + "]");
}
});
4

1 回答 1

1

删除元素是:

// Find selected 
var idx = this.select().index();
// Get reference to the DataSource
var ds = d.data("kendoListView").dataSource;
ds.remove(ds.at(idx));

这将在您单击它时立即删除所选项目(但在change事件处理程序中执行此操作实际上不允许您删除多个项目)。

但是您也可以使用以下方法直接从列表中直接删除一项remove

// Find selected 
var selected = this.select();
d.data("kendoListView").remove(selected);

在这里检查它,单击一个项目,它将被删除。

问题是这些接口每次调用都能够删除一项。如果你想删除很多,你可以迭代它们:

// Find selected 
var items = d.select();
$.each(items, function(idx, elem) {
    d.remove($(elem));
});

在这里看到它,选择许多,然后单击“删除”按钮。

于 2014-04-22T12:33:10.327 回答