我想禁用数据表行。在这种情况下,我看到两个必要的步骤:
我已经使用相应的Webix方法成功完成了第一步:
function disableRow(table, row){
table.addRowCss(row, "disabled-row")
};
webix.ui({
view:"datatable",
id:"mytest",
...
});
disableRow($$("mytest"), 2)
http://webix.com/snippet/e47b4257
但是如何限制此行的选择?谢谢
答案 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>
答案 3 :(得分:0)
要禁用webix提供的任何功能,您可以覆盖其事件并处理相同的事件:
要停止对任何特定列,行或单元格的选择,您可以覆盖onBeforeSelect
并为该特定行/列/单元格返回false。
所有事件都有事件,例如onBeforeSelect,onAfterSelect,onBeforeEditStop, onAfterEditStop
等。