zoukankan      html  css  js  c++  java
  • 表格数据 按上下左右移动光标

    /*!
    *tableId:表格ID
    *rowIndex:行号
    *left:左边控件ID
    *columnName:当前控件ID
    *right:右边控件ID
    */
    function inputKeyDown(tableId,rowIndex,left, columnName,right)
    {
    
       key=window.event.keyCode;
      if(key>=37 && key<=40)
      {
        var index=rowIndex;
        var name=columnName;
        if (key==38 && rowIndex>1){//↑
           index=rowIndex-1;
        }else if (key==40 ){//↓
           index=rowIndex+1;
     
        }else if (key==37 && left){//←
           name=left;      
        }else  if (key==39 && right){//→
            name=right;
        }
        if(index>0 && name)  
        { 
         if(index<=9) 
             index="0"+index;
         var obj=document.getElementById(tableId+"_ctl"+(index)+"_"+name);
         if(obj &&  obj.disabled)
          obj.focus();     
        }
      }
    }

    该方法主要是针对Asp.net数据源控件自动生成行。如GridView的模板列生成。因为生成的控件的ID格式是固定的,如:数据源控件ID+“_clt”+行索引+“_”+该控件ID

    <INPUT style="WIDTH: 90%" onkeydown="inputKeyDown('gvBuyAppDetailItem',2,'number',this.id,'hfUnit')" id=’gvBuyAppDetailItem_ctl02_MaterialID’ class=’TextBox’>
    在行生成事件中添加代码:
    if (e.Row.RowType == DataControlRowType.DataRow)
                    {
                        for (int i = 0; i < e.Row.Cells.Count; i++)
                        {
                            if (e.Row.Cells[i].Controls.Count > 0 && e.Row.Cells[i].Controls[0] is WebControl)
                            { 
                                 WebControl control=e.Row.Cells[i].Controls[0] as WebControl; 
                                    string left = null;
                                    string right=null;
                                    if (i - 1 >= 0 && e.Row.Cells[i - 1].Controls.Count > 0)
                                        left = e.Row.Cells[i - 1].Controls[0].ID;
                                   if (i + 1 <e.Row.Cells.Count && e.Row.Cells[i + 1].Controls.Count > 0)
                                        right = e.Row.Cells[i + 1].Controls[0].ID;
                                    control.Attriubter.Add("onkeydown",string.Format( "inputKeyDown('{0}',{1},'{2}',{3} ,'{4}')",“GridView的id”,e.Row.RowIndex+2,left,control.ID,right));
                                }
                            }
    }
    
    老虞,Gopher,golang主页:http://howdo.cnblogs.com/
  • 相关阅读:
    Excel Sheet Column Number
    Compare Version Numbers
    Min Stack
    Excel Sheet Column Title
    Find Peak Element
    数据规范化
    Majority Element
    用户唯一登录
    面试总结——Java高级工程师(三)
    Spring AOP 实战运用
  • 原文地址:https://www.cnblogs.com/howDo/p/2056684.html
Copyright © 2011-2022 走看看