Javascript 如何从kendoListBox中删除所有项目

Javascript 如何从kendoListBox中删除所有项目,javascript,kendo-ui,Javascript,Kendo Ui,我有两个肯多列表框,它们之间交换物品。基本上是一对可用项和一对选定项。 我有一个Json服务,它通过Json数组控制哪些项目可用。 当用户选择一个新过滤器时,我希望在从服务器添加新项目之前,两个剑道列表框都清除项目。 当前,它将新列表从服务器追加到当前列表 $(document).ready(function () { $("#filterKeyWord").click(function () { getResults($("#keywords")); });

我有两个肯多列表框,它们之间交换物品。基本上是一对可用项和一对选定项。 我有一个Json服务,它通过Json数组控制哪些项目可用。
当用户选择一个新过滤器时,我希望在从服务器添加新项目之前,两个剑道列表框都清除项目。
当前,它将新列表从服务器追加到当前列表

$(document).ready(function () {
    $("#filterKeyWord").click(function () {
        getResults($("#keywords"));
    });
    $("#availableReports").kendoListBox({
        dataTextField: "Name",
        dataValueField: "ID",
        connectWith: "selectedReports",
        dropSources: ["availableReports"],
        toolbar: {
            tools: ["transferTo", "transferFrom", "transferAllTo", "transferAllFrom", "remove"]
        }
    });

    $("#selectedReports").kendoListBox({
        dataTextField: "Name",
        dataValueField: "ID",
        dropSources: ["selectedReports"],
        remove: function (e) {
            setSelected(e, false);
        },
        add: function (e) {
            setSelected(e, true);
        }
    });

    var mydata = { ReportName: "", UserId: "" };
    mydata.ReportName = "SomeName";
    mydata.UserId = "SomeUser";

    var crudService = "",
        dataSource = new kendo.data.DataSource({
            serverFiltering: true,
            transport: {
                read: {
                    url: crudService + "GetReportList",
                    dataType: "json",
                    type: "get",
                    contentType: "application/json; charset=utf-8",
                },
                update: {
                    url: crudService + "SaveReportList2",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    type: "post",
                },
                filter: {
                    url: crudService + "GetReportList",
                    dataType: "json",
                    type: "get",
                    contentType: "application/json; charset=utf-8",
                },

                parameterMap: function (options, operation) {
                    console.log(operation);
                    if (operation !== "read" && options.models) {
                        return JSON.stringify({ models: options.models });
                    }
                    if (operation === "read") {
                        return "request=" + JSON.stringify(mydata);
                    }
                }
            },
            batch: true,
            requestStart: function () {
                kendo.ui.progress($(".demo-section"), true);
                console.log("request start");
            },
            requestEnd: function () {
                kendo.ui.progress($(".demo-section"), false);
                console.log("request end");
            },
            error: function (e) {
                console.log("Error" + e);
            },
            change: function (e) {
                console.log("change" + this.data.length);
                setDropDownBoxes(this);
            },
            schema: {
                model: {
                    id: "ID",
                    fields: {
                        ID: { type: "number" },
                        Selected: { type: "boolean" },
                        Name: { type: "string" },
                        Description: { type: "string" },
                        InternalId: { type: "string" }
                    }
                }
            }
        });
    $("#saveReportList").kendoButton({
        click: function (e) {
            dataSource.sync();
        }
    });
    $("#getReportList").kendoButton({
        click: function (e) {
            mydata.ReportName = $("#keywords").val();
            dataSource.read();
        }
    });
    function setDropDownBoxes(obj) {
        var data = obj.data();
        var availableReports = $("#availableReports").data("kendoListBox");
        var selectedReports = $("#selectedReports").data("kendoListBox");
        var items = availableReports.dataItems();
        for (var i = 0; i < data.length; i++) {
                if (data[i].Selected) {
                    selectedReports.add(data[i]);
                }
                else {
                    availableReports.add(data[i]);
                }
            }
    }
    function setSelected(e, flag) {
        var removedItems = e.dataItems;
        for (var i = 0; i < removedItems.length; i++) {
            console.log(flag + " " + removedItems[i].ID + " " + removedItems[i].Name + " " + removedItems[i].Selected);
            var item = dataSource.get(removedItems[i].ID);
            item.Selected = flag;
            item.dirty = !item.dirty;
        }
    }
});
$(文档).ready(函数(){
$(“#过滤器关键字”)。单击(函数(){
获取结果($(“#关键字”);
});
$(“#可用报告”).kendoListBox({
dataTextField:“名称”,
dataValueField:“ID”,
连接方式:“selectedReports”,
dropSources:[“availableReports”],
工具栏:{
工具:[“transferTo”、“transferFrom”、“transferAllTo”、“transferAllFrom”、“remove”]
}
});
$(“#selectedReports”).kendoListBox({
dataTextField:“名称”,
dataValueField:“ID”,
dropSources:[“selectedReports”],
删除:功能(e){
(e,假);
},
加:职能(e){
(e,真);
}
});
var mydata={ReportName:,UserId::};
mydata.ReportName=“SomeName”;
mydata.UserId=“SomeUser”;
var crudService=“”,
dataSource=新建kendo.data.dataSource({
是的,
运输:{
阅读:{
url:crudService+“GetReportList”,
数据类型:“json”,
键入:“获取”,
contentType:“应用程序/json;字符集=utf-8”,
},
更新:{
url:crudService+“SaveReportList2”,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
类型:“post”,
},
过滤器:{
url:crudService+“GetReportList”,
数据类型:“json”,
键入:“获取”,
contentType:“应用程序/json;字符集=utf-8”,
},
parameterMap:功能(选项、操作){
控制台日志(操作);
if(操作!=“读取”&&options.models){
返回JSON.stringify({models:options.models});
}
如果(操作==“读取”){
return“request=“+JSON.stringify(mydata)”;
}
}
},
批次:对,
requestStart:函数(){
kendo.ui.progress($(“.demo节”),true;
日志(“请求启动”);
},
requestEnd:函数(){
kendo.ui.progress($(“.demo节”),false;
控制台日志(“请求结束”);
},
错误:函数(e){
控制台日志(“错误”+e);
},
更改:功能(e){
log(“change”+this.data.length);
设置下拉框(此);
},
模式:{
型号:{
id:“id”,
字段:{
ID:{type:“number”},
所选:{type:“boolean”},
名称:{type:“string”},
描述:{type:“string”},
内部ID:{type:“string”}
}
}
}
});
$(“#保存报告列表”)。肯多布顿({
点击:功能(e){
dataSource.sync();
}
});
$(“#getReportList”).kendoButton({
点击:功能(e){
mydata.ReportName=$(“#关键字”).val();
dataSource.read();
}
});
功能设置下拉框(obj){
var data=obj.data();
var availableReports=$(“#availableReports”).data(“kendoListBox”);
var selectedReports=$(“#selectedReports”).data(“kendoListBox”);
var items=availableReports.dataItems();
对于(变量i=0;i
不确定应该在您的列表中的具体位置执行提示,但是,您可以同时使用和方法来清除列表框

remove()
方法接受
li
元素的列表,这是
items()
返回的内容,因此它将从列表中删除整个
li
集合

var listBox = $("#listBox").data("kendoListBox");
listBox.remove(listBox.items());