找回密码
 立即注册

QQ登录

只需一步,快速开始

raul1122

中级会员

42

主题

155

帖子

980

积分

中级会员

积分
980

活字格认证微信认证勋章

raul1122
中级会员   /  发表于:2012-6-15 14:22  /   查看:5986  /  回复:1
<script language="javascript" type="text/javascript" id="Card_Script2">
                function Card_ActiveCellChanged(event){
             var card = document.getElementById("<%=Card.ClientID %>");
         var cell = card.GetCellByRowCol(card.ActiveRow+1,card.ActiveCol);
         if (cell.title == "特殊字段") {
         
            <%=Page.GetPostBackEventReference(btnEnter)%>
         }
     }
        </script>
   
  <script type="text/javascript" >

      window.onload = function () {
          var card = document.getElementById("<%=Card.ClientID %>");
          card.onkeydown = Move;
      }

    function Move() {
        if (event.keyCode == 13) {
            var card = document.getElementById("<%=Card.ClientID %>");
            var col = card.ActiveCol;
            var row = card.ActiveRow;
            var colCount = card.GetColCount();
            var cell = card.Cells(row, col);
            if (col + 1 < colCount) {
                if (cell.CellType2 == "LabelCellType") {
                    card.MoveToNextCell();
                  
                }
                           }
            else if (col + 1 == colCount ) {
                card.SetActiveCell(row + 1, 1);
            }
            else if (col + 1 == colCount ) {
                card.SetActiveCell(row + 1, 1);
             }
          }
      }

     </script>

以上是给spread写的一段js,以实现单击单元格能切换焦点的问题。但达不到我目前想实现的效果
原来的想法是每次move的时候判断一下,当前activecole的值,如果加1还小于colcount,就继续movenextcell,否则movenextcolumn,但实际情况是,如果单元格在设计时经过了合并,那么这个判断就是失效的。请问如何能解决这个问题。

另外用activecellchanged事件我想达到的效果是,当前单元格丢失焦点时,调用一个后台button,这时候后台代码涉及的参数要是已经丢失焦点的单元格的,而非是已经得到焦点的新的cell对象的,该如何解决,谢谢

1 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-6-15 16:14:00
沙发
回复 1楼raul1122的帖子

raul1122 你好,
关于问题一:楼主所说的“如果单元格在设计时经过了合并,那么这个判断就是失效的”
请问是问题是否是:
条件1:在某行最后一列单元格被合并。
条件2:合并单元格为 “LabelCellType”。
出现的问题是:在该单元格中点击“Enter”键,没有跳到下一行第二列,而是跳到下一行第一列呢?
如果是:可以判断当前单元格 cell.colSpan 属性值,从而判断移动的距离。
如果我的假设错误,请楼主更正。

关于问题二.我想楼主可以在前台添加 HiddenField 去记录,ActiveCell 变化之前的 Cell 行列值,在GetCellByRowCol 是,通过取得 HiddenField 的 value 取 GetCellByRowCol 的单元格信息,在 PostBack 之后 把新的 ActiveCell 信息存入 HiddenField 即可。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部