要实现如下功能:
DataGrid中全编辑﹔在客户端DataGrid响应方向键, 光标自由在单元格间切换。
DataGrid中全编辑已经可以实现。但在客户端DataGrid响应方向键光标自由在单元格间切换还没处理好。
请高手指教,高分酬谢。
注意是在客户端实现切换,不要回发服务器。

解决方案 »

  1.   

    可以上www.devexpress.com这个网站看看他们做的那个grid控件
      

  2.   

    很多这样的第三方控件:Devexpress, Infragistics, Ninenay, r.a.d等等
      

  3.   

    下面代码是我正在合用的.放在.aspx文件的<head>内,根据自己的要求改一下.
    <script language="javascript">

    //自动在文本框中移动
      function DateInputYearKeyUp(obj)
    {
      if (DateInputFilterEditKey(window.event.keyCode))
      {
    if (obj.value.length >= 4)
    {
      obj.nextSibling.nextSibling.focus();
      obj.nextSibling.nextSibling.select();
    }
      }
    }function DateInputFilterEditKey(keyCode)
    {
      return (keyCode != 9) && (keyCode != 16) && ((keyCode < 37) || (keyCode > 40));
    }function DateInputMonthKeyUp(obj)
    {
      if (DateInputFilterEditKey(window.event.keyCode))
      {
    if (obj.value.length >= 2)
    {
      obj.nextSibling.nextSibling.focus();
      obj.nextSibling.nextSibling.select();
    }
      }
    }//在特价textbox填上数据,自动选复选框
    function CheckCheckBox(txtbox,ckbox)
    {
       if(document.getElementById(txtbox).value.length>0)
          document.getElementById(ckbox).checked=true;
       else
          document.getElementById(ckbox).checked=false;
    } </script>
    <style type="text/css">BODY { FONT-SIZE: 12px }
    TABLE { FONT-SIZE: 12px }
    </style>
    <!--  处理在文本框上下左右移动   -->
    <script language="javascript">
    var n = 3;
    function document.onkeydown()
    {
      //alert(event.keyCode);  var e = event.srcElement;
      var c = event.keyCode;
      switch(c)
      {
         case 37: //left
    moveCursor(e,-1);
    break;     case 38: //up
    moveCursor(e,-n);
    break;     case 39: //right moveCursor(e,1);
    break;     case 40: //down
    moveCursor(e,n);
    break;  }
    }function moveCursor(e,n)
    {
      var i = e.sourceIndex;
       var sign = n > 0? 1 : -1;
       n = Math.abs(n);   i=i+sign*1;   while ( i >=0 && i < document.all.length)
       {
    e = document.all[i];
    if (e.tagName == "INPUT" && e.type == "text")
    {
    n--;
    if (n==0)
    break;
    }
    i=i+sign*1;
       }
       if ( i >= 0 && i < document.all.length && n==0)
    document.all[i].focus();}
    </script>
    <!-- datagrid中绑定的第一个文本框获得焦点  -->
    <script language="javascript">
    function window.onload(){
    var ary = document.getElementsByTagName("input");
     var querybol = true;
     for(i=0;i<ary.length;i++)
     {
      if(ary[i].type == "text" && querybol == true){
        ary[i].focus();
        querybol = false;
      }
     }
    }
    </script>
      

  4.   

    http://blog.csdn.net/ChengKing/archive/2006/01/03/568966.aspx