找回密码
 立即注册

QQ登录

只需一步,快速开始

啷个里个啷
注册会员   /  发表于:2022-11-21 08:52  /   查看:1711  /  回复:2
5金币
本帖最后由 啷个里个啷 于 2022-11-21 10:50 编辑

以如下表格为例子,表格数据是动态加载的,列是固定的。其中C列是可编辑列,但是只有部分行的该列可编辑,
image.png354723510.png
假设苹果行我不想让用户可以操作编辑,其他行可以操作编辑录入。
        我试着在表格的EditModeStarting事件中,判定ActiveRow和ActiveColumn是我不想开放编辑的单元格时,就执行StopCellEditing()方法,希望可以直接退出编辑模式。虽然确实结束了,但是它还会进入EditModeOff事件中(我需要在这个事件中对其他可输入行的输入值做处理)。
        有什么其他方式可以直接限制这个单元格不可操作吗?比如我试着查找通过代码设置单元格只读,但是没有找到

最佳答案

查看完整内容

EditModeStarting事件中来去取消进入编辑完全没有问题。 另外,也可以通过表单保护来禁止编辑,将单元格默认的locked属性设置为false,仅设置需要禁止编辑的单元格locked属性为ture,然后设置sheet表单保护即可

2 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-21 08:52:16
来自 3#
EditModeStarting事件中来去取消进入编辑完全没有问题。

另外,也可以通过表单保护来禁止编辑,将单元格默认的locked属性设置为false,仅设置需要禁止编辑的单元格locked属性为ture,然后设置sheet表单保护即可
回复 使用道具 举报
啷个里个啷
注册会员   /  发表于:2022-11-21 10:49:40
2#
自己找到了实现方法,直接使用事件的取消就好了,相当于对于spread表格而言,没有进入编辑模式,后续就也不会触发编辑结束事件了


private void fpsBargaining_EditModeStarting(object sender, EditModeStartingEventArgs e)
{
            //是否允许编辑
            bool isCanEdit = false;
            
            if (允许编辑时)
            {
                isCanEdit = true;
            }
            
            if (!isCanEdit)
            {
                //退出编辑
                e.Cancel = true;
                return;
            }
            else
            {
                //自定义处理
            }
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部