Javascript 剑道ui列表框删除项目

Javascript 剑道ui列表框删除项目,javascript,kendo-ui,kendo-treeview,kendo-listbox,Javascript,Kendo Ui,Kendo Treeview,Kendo Listbox,嘿,我需要一些帮助来获取所选项目并将其从kendoListBox中删除 在kendoTreeView中检查项目时,我目前已成功将选中的项目添加到kendoListBox,但在从kendoTreeView中取消选中项目时,我找不到如何删除该项目 let apiData={ “对象列表”:[{ “姓名”:“facebook”, “描述”:空, “Id”:“EB8CB0C8C32D1201BF30CF54S4F30889ABB23F92B1F7”, “DocumentType”:空, “Provid

嘿,我需要一些帮助来获取所选项目并将其从kendoListBox中删除

kendoTreeView中检查项目时,我目前已成功将选中的项目添加到kendoListBox,但在从kendoTreeView中取消选中项目时,我找不到如何删除该项目

let apiData={
“对象列表”:[{
“姓名”:“facebook”,
“描述”:空,
“Id”:“EB8CB0C8C32D1201BF30CF54S4F30889ABB23F92B1F7”,
“DocumentType”:空,
“ProviderId”:2,
“猫”:“社交网络”
}, {
“名称”:“推特”,
“描述”:空,
“Id”:“732fe66cce4365bc5074384f09b34e787f3f3efe8b55”,
“DocumentType”:空,
“ProviderId”:2,
“猫”:“社交网络”
}, {
“名称”:“谷歌”,
“描述”:空,
“Id”:“8B11D6F74B4BF71A7DDBC62DCFEAD27087E0F3E047E”,
“DocumentType”:空,
“ProviderId”:2,
“Cat”:“搜索引擎”
}]
};
$(“#treeview”).kendoTreeView({
复选框:{
孩子们:是的
},
检查:onCheck,
数据源:{
数据:apiData,
模式:{
型号:{
儿童:“物品”
},
解析:(数据)=>{
设newData=[];
data.object\u list.forEach(项=>{
让parent=newData.find(parentItem=>parentItem.text==item.Cat);
如果(!父项){
父项={
id:2,
文本:item.Cat,
对,,
项目:[],
精灵类:“文件夹”
};
newData.push(父级);
}
parent.items.push({
id:3,
text:item.Name,
精灵类:“图像”
});
});
返回[{
id:1,
文本:“类别”,
对,,
精灵类:“根文件夹”,
项目:新数据
}];
}
}
}
});
$(“#来源”).kendoListBox();
函数onCheck(e){
var checkedNodes=[];
var checkedNode=e.node.innerText;
log(e.node.innerText);
如果(e.node.ariaChecked==“false”){
log(“其已选择*删除*”;
var列表框=$(“#来源”).data(“kendoListBox”);
控制台日志(listBox);
}否则{
log(“它刚刚被选中*添加*”;
var列表框=$(“#来源”).data(“kendoListBox”);
listBox.add({
文本:checkedNode,
值:checkedNode
});
}
}
函数onExpand(e){
if($(“#tbSourcesFilter”).val()==“”){
$(e.node.find(“li”).show();
}
}
$(“#tbSourcesFilter”).keyup(函数(e){
var filterText=$(this.val().toLowerCase();
//log(“filterText:,filterText”);
如果(filterText!==“”){
$(“#treeview.k-group.k-group.k-in”).closest(“li”).hide();
$(“#treeview.k-group”).closest(“li”).hide();
$(“#treeview.k-in:包含(“+filterText+”))。每个(函数(){
$(此).parents(“ul,li”).each(function(){
var treeView=$(“#treeView”).data(“kendoTreeView”);
treeView.expand($(this.parents)(“li”);
$(this.show();
});
});
$(“#treeview.k-group.k-in:包含(“+filterText+”))。每个(函数(){
$(此).parents(“ul,li”).each(function(){
$(this.show();
});
});
}否则{
//console.log(“k-group:,$”(“#treeview.k-group”).find(“li”).show();
$(“#treeview.k-group”).find(“li”).show();
var节点=$(“#treeview>.k-group>li”);
//log(“节点:”,节点);
$.each(节点、函数(i、val){
//log(节点[i].getAttribute(“数据扩展”);
if(节点[i].getAttribute(“数据扩展”)==null){
$(节点[i]).find(“li”).hide();
}
});
}
});
#treeview.k-sprite{
背景图像:url(“../content/web/treeview/coloricons sprite.png”);
}
.rootfolder{
背景位置:0;
}
.文件夹{
背景位置:0-16px;
}
.pdf{
背景位置:0-32px;
}
.html{
背景位置:0-48px;
}
.形象{
背景位置:0-64px;
}
#过滤文本{
宽度:100%;
框大小:边框框;
填充:6px;
边界半径:3px;
边框:1px实心#d9d9d9;
}

您可以通过两种方式完成:

  • 对jQuery选择的目标节点使用ListBox的方法:
  • let apiData={
    “对象列表”:[{
    “姓名”:“facebook”,
    “描述”:空,
    “Id”:“EB8CB0C8C32D1201BF30CF54S4F30889ABB23F92B1F7”,
    “DocumentType”:空,
    “ProviderId”:2,
    “猫”:“社交网络”
    }, {
    “名称”:“推特”,
    “描述”:空,
    “Id”:“732fe66cce4365bc5074384f09b34e787f3f3efe8b55”,
    “DocumentType”:空,
    “ProviderId”:2,
    “猫”:“社交网络”
    }, {
    “名称”:“谷歌”,
    “描述”:空,
    “Id”:“8B11D6F74B4BF71A7DDBC62DCFEAD27087E0F3E047E”,
    “DocumentType”:空,
    “ProviderId”:2,
    “Cat”:“搜索引擎”
    }]
    };
    $(“#treeview”).kendoTreeView({
    复选框:{
    孩子们:是的
    },
    检查:onCheck,
    数据源:{
    数据:apiData,
    模式:{
    型号:{
    儿童:“物品”
    },
    解析:(数据)=>{
    设newData=[];
    data.object\u list.forEach(项=>{
    让parent=newData.find(parentItem=>parentItem.text==item.Cat);
    如果(!父项){
    父项={
    id:2,
    文本:item.Cat,
    对,,
    项目:[],
    精灵类:“文件夹”
    };
    newData.push(父级);
    }
    parent.items.push({
    id:3,
    text:item.Name,
    精灵类:“图像”
    });
    });
    
    function onCheck(e) {
      var checkedNodes = [];
      var checkedNode = e.node.innerText;
      
      console.log(e.node.innerText);
      
      if (e.node.ariaChecked == "false") {
        console.log("Its already selected *REMOVE*");
        var listBox = $("#Sources").data("kendoListBox");
        
        var text = e.node.innerText;
        var items = listBox.items();
        for (var i = 0; i < items.length; i++) {
            var dataItem = listBox.dataItem(items[i]);
            if (dataItem.Name.toLowerCase().indexOf(text) >= 0) { //WARNING - Contains Search here- may need to change depending on your requirements
                listBox.remove(items[i]);
            }
        }
    
        console.log(listBox);
        
      } else {
        console.log("Its just now been selected *ADD*");
        var listBox = $("#Sources").data("kendoListBox");
    
        listBox.add({
          text: checkedNode,
          value: checkedNode
        });
      }
    }