CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

DataGrid模板列中TextBox的焦点相应键盘事件问题

楼主bzgzxp(bzg)2005-01-27 08:12:52 在 .NET技术 / ASP.NET 提问

.DataSource   =   dst  
                DataGrid1.DataBind()  
   
                Dim   txt   As   TextBox  
                          Dim   i   As   Integer  
                          For   i   =   0   To   DataGrid1.Items.Count   -   1  
                                  txt=   DataGrid1.Items(i).FindControl("textbox1")  
                                  txt.Attributes.Add("onkeydown",   "if(event.keyCode==13)   event.keyCode=9")  
   
                        Next  
   
  TextBox的焦点即在模板列中加入的TextBox的   TabIndex,每次点击Enter(回车),TextBox的焦点按   Tab   顺序改变  
   
  如果点击向上建,焦点回到上一个TextBox 问题点数:30、回复次数:5Top

1 楼bzgzxp(bzg)回复于 2005-01-27 10:18:07 得分 0

upTop

2 楼bzgzxp(bzg)回复于 2005-01-27 11:14:09 得分 0

upTop

3 楼tengjian1981(新的一年又来到)回复于 2005-01-27 11:23:17 得分 0

帮顶Top

4 楼tianzm()回复于 2005-01-27 11:41:30 得分 15

希望对你有帮助  
  <script   language=javascript>  
  //实现键盘上下左右四键遍历网页内相临的文本框  
  document.onkeydown=keyDown;  
  function   keyDown()  
  {  
  if(event.srcElement.tagName.toLowerCase()=='input')  
  {  
  var   element=event.srcElement;  
  if(event.keyCode==37)//左  
  {  
  var   pre=element.parentNode.previousSibling;  
  var   prerow=element.parentNode.parentNode.previousSibling;  
  if(pre!=null)  
  {  
  pre.firstChild.focus();  
  pre.firstChild.select();  
  }  
  else   if(prerow!=null)  
  {  
  prerow.lastChild.firstChild.focus();  
  prerow.lastChild.firstChild.select();  
  }  
   
  }  
  else   if(event.keyCode==39)//右  
  {  
  var   next=element.parentNode.nextSibling;  
  var   nextrow=element.parentNode.parentNode.nextSibling;  
  if(next!=null)  
  {  
  next.firstChild.focus();  
  next.firstChild.select()  
  }  
  else   if(nextrow!=null)  
  {  
  nextrow.firstChild.firstChild.focus();  
  nextrow.firstChild.firstChild.select();  
  }  
  }  
  else   if(event.keyCode==38)//上  
  {  
  var   cur=element.parentNode;  
  var   curcellIndex=cur.cellIndex;  
  var   curpre=cur.parentNode.previousSibling;  
  if(curpre!=null)  
  {  
  curpre.childNodes(curcellIndex).firstChild.focus();  
  curpre.childNodes(curcellIndex).firstChild.select();  
  }  
  }  
  else   if(event.keyCode==40)//下  
  {  
  var   cur=element.parentNode;  
  var   curcellIndex=cur.cellIndex;  
  var   curnext=cur.parentNode.nextSibling;  
  if(curnext!=null)  
  {  
  curnext.childNodes(curcellIndex).firstChild.focus();  
  curnext.childNodes(curcellIndex).firstChild.select();  
  }  
  }  
  }  
  }  
  </script>Top

5 楼wj2929(Rěй)回复于 2005-01-27 12:05:54 得分 15

修改你的代码:  
  首先按TAB键跳到下一个Textbox  
   
  dim   myTabIndex   as   Int32=0;  
  For   i   =   0   To   DataGrid1.Items.Count   -   1  
      txt=   DataGrid1.Items(i).FindControl("textbox1")  
      txt.Attributes.Add("onkeydown",   "if(event.keyCode==13)   event.keyCode=9")  
      txt.Attributes.Add("tabIndex",   myTabIndex.ToString())  
      myTabIndex=myTabIndex+1  
  Next  
   
  下面是按上键时返回上一个textbox的JS  
  <script   language   =javascript>  
  document.onkeydown=keyDown;  
  function   keyDown()  
  {  
      if(event.srcElement.tagName.toLowerCase()=='input')  
      {  
          var   element=event.srcElement;  
          if(event.keyCode==38)//上  
          {  
                var   cur=element.parentNode;  
                var   curcellIndex=cur.cellIndex;  
                var   curpre=cur.parentNode.previousSibling;  
                if(curpre!=null)  
                {  
                    curpre.childNodes(curcellIndex).firstChild.focus();  
                    curpre.childNodes(curcellIndex).firstChild.select();  
                }  
          }  
      }  
  }  
  </script>Top

相关问题

  • 怎么获取datagrid中模板列中的TextBox的值?
  • DataGrid在.cs文件中绑定模板列中的TextBox
  • 如何保存动态添加datagrid模板列textbox的值?
  • datagrid模板列中获取TextBox中值的问题
  • 在DataGrid里如何得到一个模板列中控件TEXTBOX的值?
  • datagrid的模板列的TextBox为什么不能更新(在线等,急!)
  • [新手问题] 如何取得DataGrid模板列TextBox编辑后的值
  • 在DataGrid里的模板TextBox新增一行,如何使TextBox获得焦点(高分求教)
  • datagrid模板列的问题
  • DataGrid中模板列问题

关键词

  • datagrid
  • mytabindex
  • 焦点
  • textbox
  • keycode
  • txt
  • attributes
  • event
  • items
  • add

得分解答快速导航

  • 帖主:bzgzxp
  • tianzm
  • wj2929

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo