如何防止从特定视图中删除项目?

时间:2016-11-02 17:01:07

标签: javascript datatable drag-and-drop webix

我有几个列表和一个Webix数据表。根据用例,数据表应该能够从列表中接收项目,但不能将其项目删除到这些列表中。

目前,数据表配置如下:

{ 
  view:"datatable", 
  columns:[
    { id:"id" },
    { id:"value", width:200 },
    { id:"summary", fillspace:true },
    { 
      id: "delete", header:" ",
      template: "<icon class='webix_button webix_icon fa-trash delete'></icon>"          
    }
  ],       
  drag:true, // not enough
  data:initialData,
  onClick:{
    delete: function(ev, id){
      this.remove(id); 
    }
  }  
},

Code snippet

有没有办法防止从特定视图中删除? TIA

1 个答案:

答案 0 :(得分:0)

您可以根据需要为 onBeforeDrag / Drop或onAfterDrag / Drop 编写自定义函数,从而限制从特定内容中删除 。 这是一个小例子,我测试视图ID是否为d2,然后由于返回false

而不会完成丢弃
on:{
     onBeforeDrop : function(context, ev){
                  if($$("myDragView").getChildViews()[1].config.id == "d2")
                  {
                      return false;      //denies dropping if id == d2
                  }
                  return true;         
         } 
 }

对于您的情况,我已经阻止了列表中的丢弃,因此,您只能删除数据表。请查看代码段here

注意: getChildViews() 会返回调用组件的所有子项的数组(索引从0开始)。