找回密码
 立即注册

QQ登录

只需一步,快速开始

emy

银牌会员

2

主题

14

帖子

3288

积分

银牌会员

积分
3288

活字格认证

最新发帖

[已处理] spread Tab顺

emy
银牌会员   /  发表于:2015-9-10 10:15  /   查看:9269  /  回复:18
SPREAD for ASP.NET 8.0J  IE11
spread中有多个table,当focus在第一个table的最后一个textbox[A]中的时候,按下tab键,focus没有到下一个table的第一个textbox[B]中,而是在[A]右边的lable中。
这个怎么解决啊?
求大神帮帮忙。

18 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-9-10 14:17:00
沙发
回复 1楼emy的帖子

请问您指的多个Table是什么?一个 Spread 中有多个Sheet吗?

Tab 键无法用于在 Sheet 之间切换,如果是同一个Sheet 内的快捷键操作可以通过前台方法 AddKeyMap 来实现,参考代码如下:

  1. <SCRIPT language=javascript>
  2.    function setMap() {
  3.        var ss = document.getElementById("FpSpread1");
  4.        if (ss != null){
  5.           //IE9 or earlier
  6.          //ss.AddKeyMap(13,true,true,false,"this.MoveToLastColumn()");
  7.         ss.AddKeyMap(13,true,true,false,"element.MoveToLastColumn()");
  8.    }
  9. </SCRIPT>
复制代码
回复 使用道具 举报
emy
银牌会员   /  发表于:2015-9-10 15:27:00
板凳
回复 2楼iceman的帖子

不是多个sheet,就只有一个sheet。我先试试您的方法
回复 使用道具 举报
emy
银牌会员   /  发表于:2015-9-10 15:31:00
地板
我想上次一个模板给您看看,但是怎么都上传不上去。好郁闷。。。
回复 使用道具 举报
emy
银牌会员   /  发表于:2015-9-10 17:07:00
5#
我问一下啊 这个setmap方法是在初期的时候调用么?还是追加到spread的什么事件中啊?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-11 10:50:00
6#
回复 5楼emy的帖子

抱歉让你久等了。
论坛上传模板有大小限制 4M,如果模板过大请上传到百度网盘。

上传附件请参考:http://gcdn.gcpowertools.com.cn/showtopic-18213.html

在 Window.onload 事件中进行AddKeyMap调用。
回复 使用道具 举报
emy
银牌会员   /  发表于:2015-9-11 11:41:00
7#
TEST.zip (8.65 KB, 下载次数: 528)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-11 18:27:00
8#
回复 7楼emy的帖子

模板已经查收,下周一调查回复
回复 使用道具 举报
emy
银牌会员   /  发表于:2015-9-15 13:19:00
9#
大神~ 您不会忘了回复吧~~~
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-15 15:20:00
10#
回复 9楼emy的帖子

抱歉让您久等了,由于表格属于不规范表格,所以需要固定设置每一个表格的最后一个单元格位置,通过ActiveRow 和 ActiveCol 判断,如果是最后一个单元格则设置当前焦点到新的表格位置,可以通过以下代码进行实现:

  1.     <script type="text/javascript">

  2.         //添加 ActiveCellChanged 事件
  3.         window.onload = function () {
  4.             var spread1 = document.getElementById("FpSpread1");
  5.             if (document.all) {
  6.                 // IE
  7.                 if (spread1.addEventListener) {
  8.                     // IE9
  9.                     spread1.addEventListener("ActiveCellChanged", cellChanged, false);
  10.                 }
  11.                 else {
  12.                     // Other versions of IE and IE9 quirks mode (no doctype set)
  13.                     spread1.onActiveCellChanged = cellChanged;
  14.                 }
  15.             }
  16.             else {
  17.                     // Firefox
  18.                 spread1.addEventListener("ActiveCellChanged", cellChanged, false);
  19.                 }
  20.             }
  21.         //通过获取当前活跃单元格的行列索引,判断是否为一个表格的最后一个单元格,如果是即设置到下一个表格位置
  22.         function cellChanged() {

  23.                     var spread=this.document.getElementById("FpSpread1");
  24.                     var activeRow = spread.GetActiveRow();
  25.                     var activeCol = spread.GetActiveCol();
  26.                     if (activeRow==7&amp;&amp;activeCol==0) {
  27.                         spread.SetActiveCell(10,10);
  28.                     }
  29.                 }
  30.         </script>
复制代码


如果需要通过 Tab 切换,再加上对 Tab 键的判断即可。如果对代码有疑问可以留下您的联系方式,我们电话沟通。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部