gridview如何加入方向键盘选择然后回车选中数据?用js可以加上方向键选择,但是回车如何得到选中行的某列值?

先写个行操作方向键的

HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
   
<head>
       
<style>
            .lightrow
{color:red;}
       
</style>
       
<script language="javascript">
       
var lightCss = "lightrow";
       
var curRow = null;
       
function keyDown()
        {
           
var key = event.keyCode;
           
var obj = curRow;
           
switch(key)
            {
               
case 13://Enter key
                    obj.cells[0].childNodes[0].checked = !obj.cells[0].childNodes[0].checked;
                    alert(
"current RowIndex:"+obj.rowIndex+"\nID:"+obj.cells[1].innerText)
                   
break;
               
case 38://up key
                    if(obj.rowIndex>1)
                    {
                        curRow.className
= "";
                        curRow
=obj.previousSibling;
                        curRow.className
= lightCss;
                    }
                   
break;
            
               
case 40://down key
                    if(obj.rowIndex<obj.parentNode.rows.length-1)
                    {
                        curRow.className
= "";
                        curRow
=obj.nextSibling;
                        curRow.className
= lightCss;
                    }
                   
break;
            }
        }
        document.onkeydown
=keyDown;
        window.onload
=function()
        {
           
var tbl = document.getElementById("tbl");
            curRow
= tbl.rows[1];
            curRow.className
= lightCss;
        };
       
</script>
   
</head>
   
<body>
   
       
<table width="300px" style="background-color:#000" border="0" id="tbl" cellpadding=0 cellspacing=1>
           
<tr style="background-color:#fff">
               
<th></th>
               
<th>ID</th>
               
<th>NAME</th>
           
</tr>
           
<tr style="background-color:#fff">
               
<td><input type="checkbox" /></td>
               
<td>1</td>
               
<td>a1</td>
           
</tr>
           
<tr style="background-color:#fff">
               
<td><input type="checkbox" /></td>
               
<td>2</td>
               
<td>a2</td>
           
</tr>
           
<tr style="background-color:#fff">
               
<td><input type="checkbox" /></td>
               
<td>3</td>
               
<td>a3</td>
           
</tr>
       
</table>
   
</body>
</html>

2.

<html> <head>
       
<style>
            .lightrow
{color:red;}
       
</style>
       
<script language="javascript">
       
var lightCss = "lightrow";
       
var curRow = null;
       
function keyDown()
        {
           
var key = event.keyCode;
           
var obj = event.srcElement;
           
           
switch(key)
            {
               
case 13://Enter key
                    obj.select();
                   
if(typeof obj.value!="undefined")alert(obj.value);
                   
break;
               
case 37://left key
                    if(obj.parentNode.previousSibling!=null)
                    {
                       
if(obj.parentNode.previousSibling.childNodes.length>0)
                        {
                            obj.parentNode.previousSibling.childNodes[
0].focus();
                        }
                    }
                   
break;
               
case 38://up key
                    setFocus(obj,0);
                   
break;
               
case 39://right key
                    if(obj.parentNode.nextSibling!=null)
                    {
                       
if(obj.parentNode.nextSibling.childNodes.length>0)
                        {
                            obj.parentNode.nextSibling.childNodes[
0].focus();
                        }
                    }
                   
break;
               
case 40://down key
                    setFocus(obj,1);
                   
break;
            }
        }
       
       
function setFocus(obj,flag)
        {
           
var tbl=document.getElementById("tbl");
           
var rowIdx=obj.parentNode.parentNode.rowIndex;
           
var cellIdx=obj.parentNode.cellIndex;
           
if(flag==0)//up
            {
               
if(rowIdx>1)
                {
                   
var cell = tbl.rows[rowIdx-1].cells[cellIdx];
                   
if(cell.childNodes.length>0)
                    {
                        cell.childNodes[
0].focus();
                    }
                }
            }
else
            {
                
if(rowIdx<tbl.rows.length-1)
                {
                   
var cell = tbl.rows[rowIdx+1].cells[cellIdx];
                   
if(cell.childNodes.length>0)
                    {
                        cell.childNodes[
0].focus();
                    }
                }
            }
          
        }
       
        window.onload
=function()
        {
           
var tbl=document.getElementById("tbl");
           
if(tbl.rows.length>1)
            {
               
if(tbl.rows[1].cells[0].childNodes.length>0)
                {
                   
var stFocus = tbl.rows[1].cells[0].childNodes[0];
                   
if(stFocus!=null)stFocus.focus();
                }
               
            }
        };
      
       
</script>
   
</head>
   
<body>
   
       
<table width="300px" style="background-color:#000" border="0" id="tbl" cellpadding=0 cellspacing=1>
           
<tr style="background-color:#fff">
               
<th>ID</th>
               
<th>NAME</th>
               
<th>DESC</th>
           
</tr>
           
<tr style="background-color:#fff">
               
<td><input type="text" value="1" onkeydown="keyDown()"/></td>
               
<td><input type="text" value="a1"onkeydown="keyDown()" /></td>
               
<td><input type="text" value="aaaaaaaaaaaa" onkeydown="keyDown()"/></td>
           
</tr>
           
<tr style="background-color:#fff">
               
<td><input type="text" value="2" onkeydown="keyDown()"/></td>
               
<td><input type="text" value="a2" onkeydown="keyDown()"/></td>
               
<td><input type="text" value="bbbbbbbbbbbbb" onkeydown="keyDown()"/></td>
           
</tr>
           
<tr style="background-color:#fff">
               
<td><input type="text" value="3" onkeydown="keyDown()"/></td>
               
<td><input type="text" value="a3" onkeydown="keyDown()"/></td>
                
<td><input type="text" value="ccccccccccccc" onkeydown="keyDown()"/></td>
           
</tr>
       
</table>
   
</body>
</html>

posted @ 2009-02-07 01:26  编程小小生  阅读(326)  评论(0编辑  收藏  举报