找回密码
 立即注册

QQ登录

只需一步,快速开始

mouise716

银牌会员

10

主题

20

帖子

3890

积分

银牌会员

积分
3890

活字格认证

mouise716
银牌会员   /  发表于:2014-7-14 22:51  /   查看:6415  /  回复:9
新手,刚接触spread,有下面一个问题,请教:
在sheet中,按tab键时想实现下面这种效果,不知道能不能实现?如下面的表格:
1.光标在A1时,按下tab键,按照A1>A2>A3>A4>A5迁移
2.光标在B1时,按下tab键,按照B1>B2>...>B4>B5>B6>...>B8>....>B20迁移
A1 B1 B2 B3B4
A2 B5 B6 B7 B8
A3 B9 B10 B11 B12
A4 B13 B14 B15 B16
A5 B17 B18 B19 B20

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-7-15 11:09:00
沙发
回复 1楼mouise716的帖子

设置方法如下:

  1.     <script type="text/javascript">
  2.         function setMap() {
  3.             var ss = document.getElementById("FpSpread1");
  4.             if (ss != null) {
  5.                 ss.AddKeyMap(13, false, false, false, "element.MoveToNextRow()");
  6.             }
  7.         }
  8.     </script>
复制代码


为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
mouise716
银牌会员   /  发表于:2014-7-15 13:14:00
板凳
再请教一下,什么时候调用setMap这个方法呢?
另外,AddKeyMap这个方法的参数能说明一下么?
非常感谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-15 18:17:00
地板
回复 3楼mouise716的帖子

Spread 没有 SetMap 方法,快捷键使用AddKeyMap方法设置,参数说明:
  1. Syntax
  2. [JavaScript]

  3. FpSpread1.AddKeyMap(keycode,ctrl,shift,alt,action);

  4. Parameters
  5. keycode
  6. Integer, key being pressed
  7. ctrl
  8. Boolean, Control key
  9. shift
  10. Boolean, Shift key
  11. alt
  12. Boolean, Alt key
  13. action
  14. Constant, MoveToPrevCell, MoveToNextCell, MoveToNextRow, MoveToPrevRow, MoveToFirstColumn, MoveToLastColumn, ScrollTo
复制代码


详细请参考帮助文档相关章节。
回复 使用道具 举报
mouise716
银牌会员   /  发表于:2014-7-15 19:16:00
5#
不好意思,还是没明白在什么时候使用AddKeyMap方法设置快捷键。
是需要对每个cell都设置快捷键么?例子好像是对整个spread设置了吧,这样的话,怎么知道在A1时按tab键是迁到A2,而在B1时按tab键是迁到B2。可以再给个详细点的例子吗?谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-16 10:14:00
6#
回复 5楼mouise716的帖子

恩你的理解是正确的,是以spread为整体进行设置的,不需要每个 Cell 都设置。

  1.     <script type="text/javascript">
  2.         function setMap() {
  3.             var ss = document.getElementById("FpSpread1");
  4.             if (ss != null) {
  5.                 ss.AddKeyMap(9, false, false, false, "element.MoveToNextRow()");
  6.             }
  7.         }
  8.     </script>
复制代码

其中 MoveToNextRow 即为点击 tab 键时的动作。
回复 使用道具 举报
mouise716
银牌会员   /  发表于:2014-7-16 13:32:00
7#
对整个spread设置后,每一列都是都是从上往下迁移吧。我想要的效果是第一列从上往下迁移,其他的是从左往右迁移。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-16 18:29:00
8#
回复 7楼mouise716的帖子

可以通过判断活跃单元格列索引来设置不同的快捷键动作:

  1.     <script language="javascript" type="text/javascript" id="FpSpread1_Script1">
  2.                 function FpSpread1_ActiveCellChanged(event){
  3.                     //Add code to handle your event here.
  4.                     var ss = document.getElementById("FpSpread1");
  5.                     var row = ss.GetActiveRow();
  6.                     var col = ss.GetActiveCol();

  7.                     if (col==0) {
  8.                         ss.AddKeyMap(9, false, false, false, "element.MoveToNextRow()");
  9.                     }
  10.                     else {
  11.                         ss.AddKeyMap(9, false, false, false, "element.MoveToNextCell()");
  12.                     }
  13.                 }
  14.         </script>
复制代码
回复 使用道具 举报
mouise716
银牌会员   /  发表于:2014-7-16 19:41:00
9#
在哪调用FpSpread1_ActiveCellChanged这个方法呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-17 17:47:00
10#
回复 9楼mouise716的帖子

请参考截图:

clientevent.png

附件是测试 Demo :
VS 2013 + .NET 4.0 + Spread for ASP.NET 7.0V3
13247.zip (7.79 KB, 下载次数: 264)

评分

参与人数 1满意度 +5 收起 理由
mouise716 + 5 非常感谢

查看全部评分

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