怎么获取当前 获得焦点的控件

pcuser 2012-05-16 03:57:45
RT
比如:
有5个TextBox控件,分别为tx1,tx2,tx3,tx4,tx5

tx1 的 AutoPostBack="True",tx1_TextChanged进行一些后台处理程序,

tx1 失去焦点的时候处理后台程序,

那么当tx1失去焦点的时候,怎么让程序记住在处理后台程序前当前的焦点在哪个控件上。

假设用户操作是

点击tx2(或者tx4),使tx1失去焦点,那么怎么获取是tx2(或者tx4)获得焦点的时候tx1失去焦点。
...全文
1641 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcuser 2012-05-25
  • 打赏
  • 举报
回复
原意是,GridView中的TextBox中有设置TextChangeed事件,

当TextChangeed事件运行后,整个窗口失去焦点。

要在TextChangeed事件中编写代码,使,在ajax的情况下客户没感觉有后台程序的运行。

如,在GridView1.Row[0].Cell[1]中的TextBox1的TextChangeed事件触发时是因为用户点击了GridView1.Row[1].Cell[1]中的TextBox1,那么GridView1.Row[1].Cell[1]中的TextBox1控件取得焦点。

如果没有程序的话,那么客户点击GridView1.Row[1].Cell[1]中的TextBox1后,后台运行TextBox1.TextChangeed后,那么,窗口没有焦点,那么用户要编辑GridView1.Row[1].Cell[1]中的TextBox1的话,那么还要重新点击。


或者,下一个可编辑空间取得焦点也可以。


由于是DataList镶嵌GridView1再镶嵌GridView2,而TextBox在GridView里面,现在是程序处理方法是

if (该TextBox所在的GridViewRow不是GridView2的最后一个DataRow)
{
该GridViewRow的下一个GridViewRow的TextBox1取得焦点
}
else
{
if (该TextBox所在的GridView1.GridViewRow不是GridView1的最后一个DataRow)
{
该GridView1所在的GridViewRow的下一个GridViewRow的GridView2的GridViewRow[0]的TextBox1取得焦点。
}
else
{
………………

依次递推

想看看有什么比较好的方法没有。
}
pcuser 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

tx1_TextChanged事件里面用viewstate保存当前触发这个事件的ID就好了
[/Quote]

主要是这个——当前触发这个事件的ID
我的用意就是要 当前触发这个事件的ID.Focus()
问题就是这个“当前触发这个事件的ID”怎么得到。
mad007 2012-05-17
  • 打赏
  • 举报
回复
支持使用js,很轻松解决你的问题
yyl8781697 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
那么当tx1失去焦点的时候,怎么让程序记住在处理后台程序前当前的焦点在哪个控件上。
[/Quote]
不知道LZ最终是要实现什么
从上面那句话看来,觉得LZ的设计不是很合理,
因为当tx1失去焦点的时候,当前焦点不一定在你说的任何一个控件上,到时候你觉得该怎么办。。
还有LZ像实现一些焦点失去和聚焦的效果,建议用js来做,比较方便
licai1210 2012-05-17
  • 打赏
  • 举报
回复
((TextBox)sender).ID
  • 打赏
  • 举报
回复
首先给这几个控件设置tabindex。
第二步:为当前的控件加上一个onblur事件(失去焦点事件),记下当前失去焦点控件的id 或者tabindex
第三步:根据记下的tabindex,得到下一个获得焦点的id
licai1210 2012-05-16
  • 打赏
  • 举报
回复
tx1_TextChanged事件里面用viewstate保存当前触发这个事件的ID就好了
北极小猪 2012-05-16
  • 打赏
  • 举报
回复
我觉得点击其他的控件的时候客户端应该先触发获得焦点事件,通过js记住控件id,后台应该就可以获得吧。。。个人感觉。。。。
pcuser 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

可以保存在viewstate里面,然后判断
[/Quote]
怎么处理?求代码。
licai1210 2012-05-16
  • 打赏
  • 举报
回复
可以保存在viewstate里面,然后判断

62,046

社区成员

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

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

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

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