关于动态设置单元格的颜色与锁定
要求:1数据加载完之后除Active列之外其余列为不可编辑,颜色为灰色。
2Active选中的那一行除第1列跟最后3列不变外其余列为可编辑,颜色为白色。
3Active取消选中的过程中获取那一行的数据进行校验,校验不通过则不可取消选中。
求求帮忙出个方案吧,试了好多方法都满足不了全部需求
我在你的新帖中回复这个校验问题
demo跑起来没有任何内容?是空白的页面
从你描述的需求我有点不太明白,如果Active行,Active列指的就是当前选中激活的行列,那么本身你也只能在这个交叉的单元格上来编辑,禁用其他的没有什么意义
你可以留一下电话,电话沟通一下你的需求
Richard.Ma 发表于 2023-8-3 11:58
demo跑起来没有任何内容?是空白的页面
从你描述的需求我有点不太明白,如果Active行,Active列指的就是 ...
http://localhost:8091/#/setting/masterData
Active是input框
18235908998
isReadOnly只能控制行或者列,没法对某个单元格或区域设置只读。你可以试试beginningEdit事件来控制,除此之外想不到其他的办法了
https://demo.grapecity.com.cn/wijmo/demos/Grid/Events/Editing/vue Richard.Ma 发表于 2023-8-3 13:48
isReadOnly只能控制行或者列,没法对某个单元格或区域设置只读。你可以试试beginningEdit事件来控制,除此 ...
方便可以电话一下吗,我的号码在上面 好的,我电话给你 Richard.Ma 发表于 2023-8-3 18:21
好的,我电话给你
好的,我等您电话
电话和你沟通后,确认你现在遇到的关键问题是无法在复选状态更改后,更新当前行样式,请参考下面的代码,在在线示例中加以修改即可
在overdue复选框状态改变后,会改变当前行2-4列的背景色和允许编辑状态
https://demo.grapecity.com.cn/wijmo/demos/Grid/Events/Editing/vue
flexgrid.beginningEdit.addHandler((s, e) => {
let col = s.columns;
if (col.binding != "overdue"&&col.binding != "id") {
let item = s.rows.dataItem;
if (!item.overdue) {
// prevent editing overdue items
e.cancel = true;
this.logText = "Overdue items cannot be edited";
}
}
});
flexgrid.cellEditEnding.addHandler((s, e) => {
this.logText = "";
let col = s.columns;
let item = s.rows.dataItem;
if (col.binding == "sales" || col.binding == "expenses") {
}
});
flexgrid.formatItem.addHandler((s, e) => {
if (e.panel == s.cells) {
var col = s.columns, item = s.rows.dataItem;
e.cell.style.backgroundColor="lightgray";
if(col.binding != "overdue"&&col.binding != "id"){
if(item.overdue){
e.cell.style.backgroundColor="lightgreen";
}
}
else if(col.binding != "overdue"){
}
}
});
Richard.Ma 发表于 2023-8-4 09:55
电话和你沟通后,确认你现在遇到的关键问题是无法在复选状态更改后,更新当前行样式,请参考下面的代码,在 ...
样式问题解决了,剩下在校验不通过的情况下怎么禁止复选框的状态改变了
页:
[1]
2