在 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");
- }
复制代码 使用相同的设置,你可以允许最终用户复制单元格内容。 |
|