我试图根据它的某些属性禁用特定行上的复选框(或者只是让整行通常无法选择),但我真的看不到任何方法或者我可以用来获取左侧复选框的句柄,使用多选模型或者禁用整行的广泛内容。关于如何实现这一目标的任何想法,或者我应该在哪里寻找?
答案 0 :(得分:4)
您可以使用CSS隐藏不可检查的行。首先使用setRowStyleGenerator
设置样式:
grid.setRowStyleGenerator(row -> {
boolean uncheckable = (Boolean)
row.getItem().getItemProperty("uncheckable").getValue();
return uncheckable ? "uncheckable-row" : "";
});
然后更改.scss中的样式,它们应该类似于:
.v-grid-row.uncheckable-row td {
background: #b1b9d6 none repeat scroll 0 0;
}
.v-grid-row.uncheckable-row td:first-child {
visibility: hidden;
}
.v-grid-row.uncheckable-row.v-grid-row-selected > .v-grid-cell {
background-image: none;
border-color: #d4d4d4;
color: inherit;
text-shadow: inherit;
}
这里我用复选框隐藏整个单元格(如果隐藏td
本身的内容,用户仍然可以选择行),对这些行使用不同的颜色并防止它们在“全选“复选框处于活动状态。当然,还有更多造型可供选择。由于我们只是将其隐藏在用户之外,因此仍然可以使用grid.select()
选择它们并位于grid.getSelectedRows()
集合中,您应该手动过滤它们(通过使用一些“uncheckable”属性,如上所示)。
答案 1 :(得分:0)
无法禁用特定行上的复选框。
一种解决方案是使用生成的列和/或自定义渲染器。
答案 2 :(得分:0)
如果你使用twitter bootstrap作为你的响应式框架,你应该能够找到那一行并给它一个“.inactive”类,如果这不起作用,你总是可以装备它但放置和绝对定位在该行内部高度和宽度为100%的框,并将其指向至少250.这应该使该行中的所有内容都无法点击!