asp.net textbox光标定位问题?

xue_piao_piao 2009-11-09 04:47:34
Textbox 输入数字后,调了一个后台一个事件,此时想光标定位在输入过TextBox的数字后面。

...全文
554 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxyu 2010-01-30
  • 打赏
  • 举报
回复
其实楼上的问题在客户端并好解决,我这里有一个非常简单的办法,在你处理完其他事务后,跟上一句:
texbox1.selectionstart = texbox1.text.length;
xue_piao_piao 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hecong875 的回复:]
。。看错了不好意思啊 !呵呵

<input  id="txt"  value="1234567"> <input  type="button"  value="pos"  onclick="posCursor(txt)"> 
   
  <script> 
  function  posCursor(obj) 
  { 
      obj.focus(); 
      var  re  =  obj.createTextRange(); 
      re.collapse(false);   
      re.select(); 
  } 
  </script>

关于脚本注册! 在 updatepanel  下 这么注册


ScriptManager.RegisterStartupScript(this.Page, GetType(), "", " <script language='javascript'>posCursor(); </script>", false);
[/Quote]

跟你给点分,看你长的像我同学~~
xue_piao_piao 2009-11-10
  • 打赏
  • 举报
回复
结分,搞出来了。
hecong875 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xue_piao_piao 的回复:]
引用 10 楼 hecong875 的回复:
。。看错了不好意思啊 !呵呵

<input  id="txt"  value="1234567"> <input  type="button"  value="pos"  onclick="posCursor(txt)"> 
   
  <script> 
  function  posCursor(obj) 
  { 
      obj.focus(); 
      var  re  =  obj.createTextRange(); 
      re.collapse(false);   
      re.select(); 
  } 
  </script>

关于脚本注册! 在 updatepanel  下 这么注册


ScriptManager.RegisterStartupScript(this.Page, GetType(), "", " <script language='javascript'>posCursor(); </script>", false);


跟你给点分,看你长的像我同学~~
[/Quote]


.......饿 都是因为长的像你同学才给分!吐血
shangweidenglu 2009-11-09
  • 打赏
  • 举报
回复
MARK
gegeblue 2009-11-09
  • 打赏
  • 举报
回复
focus()
阿彪兄 2009-11-09
  • 打赏
  • 举报
回复
支持一下
hecong875 2009-11-09
  • 打赏
  • 举报
回复
。。看错了不好意思啊 !呵呵

<input id="txt" value="1234567"><input type="button" value="pos" onclick="posCursor(txt)">

<script>
function posCursor(obj)
{
obj.focus();
var re = obj.createTextRange();
re.collapse(false);
re.select();
}
</script>

关于脚本注册! 在 updatepanel 下 这么注册


ScriptManager.RegisterStartupScript(this.Page, GetType(), "", "<script language='javascript'>posCursor();</script>", false);
xue_piao_piao 2009-11-09
  • 打赏
  • 举报
回复
wszhoho 2009-11-09
  • 打赏
  • 举报
回复
微软ajax,没用过,惭愧,帮顶。
xue_piao_piao 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hecong875 的回复:]
.。不都告诉你方法了 ! 你在后台操作 跟updatepanel 没任何关系!
[/Quote]

……

你可以自己试试看,光标是否定位在输入的数字后面。
hecong875 2009-11-09
  • 打赏
  • 举报
回复
写在这个后台事件 结束的地方啊 ! this.textbox.focus();


比如 你 输入数字后调用了一个后台的事件A

.......a()
{
.....
....
.....
.....
//当你前面的业务全部处理完后加上

this.textbox.focus();
}
hecong875 2009-11-09
  • 打赏
  • 举报
回复
.。不都告诉你方法了 ! 你在后台操作 跟updatepanel 没任何关系!
xue_piao_piao 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wszhoho 的回复:]
光标定位是客户端的事,调用页面后应该刷新过了的。
页面中添加
JScript code<script>function focus_last(obj){var text= obj.createTextRange();
text.collapse(false);
text.select();
}</script>

可以在后台代码执行完的时候,注册客户端脚本
"focus_last(document.getElementById('你的文本框ID'))"



[/Quote]
没效果,光标没有定位。

我忘了说,我用了UpdatePanel,不知道是不是这个原因。又不知道怎么解决
wszhoho 2009-11-09
  • 打赏
  • 举报
回复
光标定位是客户端的事,调用页面后应该刷新过了的。
页面中添加

<script>
function focus_last(obj){
var text = obj.createTextRange();
text.collapse(false);
text.select();
}
</script>


可以在后台代码执行完的时候,注册客户端脚本
"focus_last(document.getElementById('你的文本框ID'))"


alexyangxb 2009-11-09
  • 打赏
  • 举报
回复
你输入的时候不是光标一直在数字的后面啊 不需要什么事件吧。

具体你可以看下控件的MSDN

Text.Focus
hecong875 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 xue_piao_piao 的回复:]
Textbox 输入数字后,调了一个后台一个事件,此时想光标定位在输入过TextBox的数字后面。


[/Quote]

写在这个后台时间 结束的地方啊 ! this.textbox.focus();

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧