表格数据 按上下左右移动光标

/*!

*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));

                            }

                        }

}

你可能感兴趣的:(表格)