如何限制数据表行的选择?

时间:2016-12-05 16:49:49

标签: javascript html datatable selection webix

我想禁用数据表行。在这种情况下,我看到两个必要的步骤:

  • 设置CSS
  • 阻止选择

我已经使用相应的Webix方法成功完成了第一步:

function disableRow(table, row){
  table.addRowCss(row, "disabled-row")
};

webix.ui({
  view:"datatable",
  id:"mytest",
  ...
}); 

disableRow($$("mytest"), 2)

http://webix.com/snippet/e47b4257

但是如何限制此行的选择?谢谢

4 个答案:

答案 0 :(得分:1)

我找到了您正在寻找的答案here

  

行没有disabled属性,但您可以使用onBeforeSelect和onBeforeEditStart事件来阻止对特定行的相关操作:

上述链接页面上有一个指向this代码段的链接,可以显示您要查找的内容。

webix.ui({
    view:"datatable", autoConfig:true, editable:true, data:grid_data,
        on:{
            onBeforeEditStart:function(id){
                if (id.row == 2 ) return false
            },
            onBeforeSelect:function(id){
                if (id.row == 2 ) return false
            } 
        }
});

答案 1 :(得分:1)

似乎可能没有内置的方法来禁用行。我确实遇到过可能有帮助的this摘要

我已经尝试以编程方式选择之后的行,它不会让你。

webix.ui({
  view:"datatable", id:"abc",autoConfig:true, editable:true, data:grid_data,
  on:{
    onBeforeEditStart:function(id){
      if (id.row == 2 ) return false
    },
    onBeforeSelect:function(id){
     if (id.row == 2 ) return false
    }
  }
});

$$("abc").select(2);
alert($$("abc").getSelectedId())
$$("abc").select(3);
alert($$("abc").getSelectedId())

答案 2 :(得分:0)

使用!important覆盖表格样式:

<style>
 .disabled-row {
   background-color: #ddd !important;
   color: #aaa !important;
 }
</style>

http://webix.com/snippet/1a3569c6

答案 3 :(得分:0)

要禁用webix提供的任何功能,您可以覆盖其事件并处理相同的事件: 要停止对任何特定列,行或单元格的选择,您可以覆盖onBeforeSelect并为该特定行/列/单元格返回false。

所有事件都有事件,例如onBeforeSelect,onAfterSelect,onBeforeEditStop, onAfterEditStop等。