找回密码
 立即注册

QQ登录

只需一步,快速开始

iceman

社区贡献组

270

主题

1万

帖子

1万

积分

社区贡献组

积分
19311

活字格认证微信认证勋章元老葡萄

iceman
社区贡献组   /  发表于:2012-1-5 17:24  /   查看:7471  /  回复:2
前言:我们都知道,锁定 Cell,即为用户在前台不能更改这个 Cell 的值,同时终端用户不能编辑这个单元格(可以复制)。 早期的 Spread ,用户可以通过前台 JS 代码更改锁定 Cell 的值,但是某些用户提出,这个功能导致锁定功能不完善,所以在近期的 Spread 版本中得到了更改。但是 Spread 控件使用广泛,有很多用户还是希望可以通过前台 JS 代码改变 锁定 Cell 的值。

下面,我们就通过代码逐步演示如何通过 JS 编辑 锁定 Cell 值。
1.我先在后台设置第一列 Locked 属性为 true。
   注意:在这里需要提醒大家,如果 SheetView 表单的 Protected 为 false (此属性默认值为 true) ,Locked 设置无效。
  1.             this.FpSpread1.ActiveSheetView.Columns[0].Locked = true;
复制代码
2.在前台添加 HTML Button,同时添加 Button1_onclick 事件 ,用来触发改变锁定 Cell 的值。
3.在 Button1_onclick 事件中如下代码,即可实现锁定 Cell 值的编辑。
  1.    
  2. <script type="text/javascript">
  3.         function Button1_onclick() {
  4.             var cell = FpSpread1.GetCellByRowCol(0, 0);
  5.             cell.removeAttribute("FpCellType");
  6.             FpSpread1.SetValue(0, 0, "setvalue", true);
  7.             cell.setAttribute("FpCellType","readonly");  
  8.             FpSpread1.UpdatePostbackData();
  9.         }
  10. </script>
复制代码
好了,仅仅需要以上三个步骤,我们就可以轻松改变锁定 Cell 的值了~

2 个回复

倒序浏览
gengwh
论坛元老   /  发表于:2012-8-10 17:10:00
沙发
回复 1楼iceman的帖子

cell.removeAttribute(&quot;FpCellType&quot;);和  cell.setAttribute(&quot;FpCellType&quot;,&quot;readonly&quot;);  是不是冲突?前者去掉属性FpCellType后者添加属性FpCellType。还有,执行了之后第一个格子的值变成了:setvalue
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-8-10 17:14:00
板凳
回复 2楼gengwh的帖子

为什么冲突呢?这个 Demo 的目的是给锁定单元格赋值:
1.cell.removeAttribute(&quot;FpCellType&quot;) 解除锁定。
2. FpSpread1.SetValue(0, 0, &quot;setvalue&quot;, true);,把单元格的值设置为 “setValue ”,这个值可以任意更改。
3. cell.setAttribute(&quot;FpCellType&quot;,&quot;readonly&quot;);  重新锁定单元格。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部