在.net里让一个控件得到焦点的方法是什么?

cqnetboy 2003-08-22 12:52:41
在点击注册按钮过后验证从每个控件得到的数据的正确性,如果哪个不正确那让那个控件得到焦点,提示用户重新输入



在.net里让一个控件得到焦点的方法是什么?



还有就是控件得到焦点的时候触发的事件是什么?


请教高手
...全文
231 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyp503 2003-08-22
  • 打赏
  • 举报
回复
你是在客户端还是服务器端进行验证操作?


如果是在客户端的话,直接用javascript 例如document.all.buttonID.focus();

如果是在服务器端的话,可以用

if(验证失败)
{

this.Page.RegisterStartUpScript("setFocus","<script language=javascript>document.all.buttonID.focus();</script>")

}
saucer 2003-08-22
  • 打赏
  • 举报
回复
you have to do on the client side, for example, if your current control is e

for (var i= e.sourceIndex + 1; i < document.all.length; i++)
{
if (document.all[i].tagName == "INPUT")
{
document.all[i].focus();
break;
}
}
wacle 2003-08-22
  • 打赏
  • 举报
回复
对于触发TextBox的TextChanged事件后焦点的定位问题,我的处理方法如下:
private void txt1_TextChanged(object sender,System.EventArgs e)
{
…….
string strJava=”<script language=’javascript’>document.frm1[‘txt2’].focus()</script>”;
Page.RegisterStartupScript(“focus”,strJava);
}
要注意的是,使用Page.RegisterStartupScript的时候,不可以启用页面的智能导航属性;由于在触发textchanged后,页面有刷新,所以上面的指令也不可以用Page.RegisterClientScript来代替;
通过研究服务器控件在客户端的表现形式,我们可以发现:
对于一般的服务器控件,它的ID在反映到客户端时,它的解析方式和普通的HTML控件是一样的,都只是控件的ID本身,我们可以直接通过它的ID 来获取该控件;但嵌套的控件不遵循此原则,请看下面关于用户控件的客户端表现:
对于自定义的用户控件,反映到客户端时,被浏览器解析成如下的形式:
用户控件名称+‘1’+下划线+服务器控件名称 (1表示该服务器控件在页面序号)
如:custom1_txt1
如果服务器控件里面还嵌套服务器控件,比如DataGrid,其形式如下:
用户控件名称+‘1’+下划线+服务器控件名称+’__’ctl+标记号+’_’+嵌套控件名称;
如:custom1_dgrd__ctl2_txtcontent
如果是DataGrid,对于标记号,我们还需要通过程序来进行简单的处理,因为每增加或删除一行,相应的标记号就会产生+1或-1的变化,控件标记号=当前行的ItemIndex+2.
比如,一个custom用户控件,它的一个datagrid项在客户端的聚焦:
string strJava="<script language='javascript'>document.custom['custom1_dgrd__ctl"+(item.ItemIndex+2)+"_txtcontent'].focus()</script>";
Page.RegisterStartupScript("focus",strJava);
cqnetboy 2003-08-22
  • 打赏
  • 举报
回复
倒,我是server控件啊
leojun 2003-08-22
  • 打赏
  • 举报
回复
服务器端怎么可能会有客户端的焦点啊?
cqnetboy 2003-08-22
  • 打赏
  • 举报
回复
C#里没有直接可用的事件方法吗?
cyp503 2003-08-22
  • 打赏
  • 举报
回复
如果是在服务器端的话,可以用

if(验证失败)
{

this.Page.RegisterStartUpScript("setFocus","<script language=javascript>document.all.buttonID.focus();</script>")

}
cqnetboy 2003-08-22
  • 打赏
  • 举报
回复
服务器端。C#里面

62,046

社区成员

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

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

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

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