找回密码
 立即注册

QQ登录

只需一步,快速开始

LeeDongmei

金牌服务用户

44

主题

237

帖子

531

积分

金牌服务用户

积分
531

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

LeeDongmei
金牌服务用户   /  发表于:2014-9-4 14:27  /   查看:5701  /  回复:5
之前提问的CellClick事件:
问题:若使CellClick事件有效,需要添加Spread1.ActiveSheetView.AutoPostBack = True语句。
但添加这条语句后,定义的列宽都失效,Spread自动调整列宽。
得到的答复:系统确实存在这种问题。
提供的解决办法:
通过添加 HTML Table 的前台 onclick 事件来回调到后台 ButtonCommand 事件,替代 AutoPostBack。
但CallBack 方法只能调用 ButtonCommand 事件,无法调用 CellClick 事件。

我使用CellClick事件的目的是,获得焦点单元格的位置,并将焦点单元格的内容取出做处理。
我把代码写到ButtonCommand事件中,结果实现不了。
无法取到焦点单元格的位置,无论鼠标点到哪里,焦点都跑回到原来的单元格中。

代码附上,请帮忙。
startest.rar (1.82 MB, 下载次数: 152)

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-9-4 16:17:00
沙发
回复 1楼LeeDongmei的帖子

感谢您的详细描述。
请通过以下代码获取:

  1.         iRow = e.SheetView.ActiveRow
  2.         iColumn = e.SheetView.ActiveColumn
复制代码


另外,在 Spread 事件中无法操作Spread之外的控件属性,所以通过以方法获取 TextBox 值也不会变化。
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2014-9-5 08:25:00
板凳
这种方法可以获取焦点单元格的值,但要想把单元格的值传给Spread外的TextBox该如何处理呢?
之前使用CellClick事件,可以将单元格的值传给TextBox,可是却破坏了Spread格式设定。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-9-5 09:26:00
地板
回复 3楼LeeDongmei的帖子

单元格的内容可以在前台实现,方法如下:

  1.         <script type="text/javascript">
  2.         function spreaclick() {
  3.             var spread = document.getElementById("FpSpread1");
  4.             //spread.Update();
  5.             var activeRow = spread.ActiveRow;
  6.             var activeCol = spread.ActiveCol;
  7.             var cellValue = spread.GetValue(activeRow, activeCol);

  8.             var tx1 = document.getElementById("TextBox1");
  9.             tx1.value = cellValue;
  10.             
  11.             spread.CallBack("button");
  12.         }
  13.     </script>
复制代码


为了加快问题处理进度,不影响您的项目进展,如果还有其他问题,欢迎一次性提出来。
谢谢
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2014-9-5 10:55:00
5#
谢谢提供的解决方法,问题解决!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-9-5 10:56:00
6#
回复 5楼LeeDongmei的帖子

恩,客气了,应该做的。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢

评分

参与人数 1满意度 +5 收起 理由
LeeDongmei + 5 谢谢!问题解决。

查看全部评分

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