在 Spread 中单元格可以被锁定,锁定的单元格禁止任何对单元格内容的操作,在 Spread 早期的版本中,可以通过代码设置锁定单元格的内容,甚至可以复制锁定单元格的内容。许多客户反映说这个功能不实用。所以,在晚期的 Spread for ASP.NET 版本中改变了这个功能。使锁定单元格内容不允许通过 javascript 或 最终用户设置或复制单元格的内容。随着 Spread 的广泛使用,许多程序员有交互锁定单元格的需求出现。怎样解决这个问题呢?
有一种方法是可以通过 javascript 使锁定单元格内容仍然可以进行设置,你要做的是通过移除锁定单元格的 “FpCellType” 属性,这个属性包含单元格锁定的信息,然后对单元格的内容进行设定,最后重新锁定单元格。
代码演示:
服务端代码:
fpSpread1.ActiveSheetView.Columns(0).Locked=True 复制代码
客户端代码:
function window.onload(){ var spread = document.all("FpSpread1"); if (spread!=null) { spread.onActiveCellChanged = cellChanged; } } function cellChanged() { var iActiveRow, iActiveCol; iActiveColumn = FpSpread1.ActiveCol; iActiveRow = FpSpread1.ActiveRow; var cell = FpSpread1.GetCellByRowCol(iActiveRow, iActiveCol); cell.removeAttribute("FpCellType"); FpSpread1.SetValue(0, 0, "Scott", true); cell.setAttribute("FpCellType", "readonly"); } 复制代码
使用相同的设置,你可以允许最终用户复制单元格内容。