我们知道,在.net中为某控件设置焦点可以使用Form提供的一个属性:
defaultbutton = "Button1",如果为文本框设置焦点可以使用另外一个属性:defaultfocus = "TextBox1"。

<form id="Form1" 
    defaultbutton
="Button1" 
    defaultfocus
="TextBox1" 
    runat
="server"> 

我们还可以在:
protected void Page_Load(object sender, EventArgs e)
{
         SetFocus(
"TextBox1.ClientID");
}

此时如果查看这个页面生成的html源文件,在源文件底部,可以发现类似下面的一段代码:
<script type="text/javascript">
<!--
【小技巧】方便地为页面中的控件设置焦点..
WebForm_AutoFocus('ctl00_ContentPlaceHolder1_txt_MessageInput');
// -->
</script>

那其实是可以考虑通过这个方法来设置焦点的。
【小技巧】方便地为页面中的控件设置焦点    <script type="text/javascript"><!--   
【小技巧】方便地为页面中的控件设置焦点  
function CustomSetFocus()     
>

这似乎没什么特别的,但给我们一个启发:
假如我们在后置代码中想任意设置焦点怎么处理?似乎可以解决了!
通过调用我们自定义的一个简单的设置焦点的脚本。
下面展示如何调用:

比如在一个Button的Click事件中我们加上:
Page.RegisterStartupScript("MySetFocus""CustomSetFocus()");    
[假如想自定义某个控件,请改造一下CustomSetFocus方法,即添加一个控件ID作为参数]

假如我们使用了UpdatePanel控件,会发现调用会出现问题,这时,我们采取这种写法:
【小技巧】方便地为页面中的控件设置焦点        ScriptManager.RegisterStartupScript(
【小技巧】方便地为页面中的控件设置焦点            
this.Page,
【小技巧】方便地为页面中的控件设置焦点            
this.GetType(),
【小技巧】方便地为页面中的控件设置焦点            
"mysetfocus""customsetfocus();",
【小技巧】方便地为页面中的控件设置焦点            
true);

这样就可以比较方便地设置焦点了。

由于比较简单就不提供源码下载了。

相关文章:

  • 2022-12-23
  • 2021-06-20
  • 2022-02-21
  • 2022-02-11
  • 2021-06-21
  • 2021-11-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-21
  • 2022-12-23
  • 2022-12-23
  • 2021-10-09
  • 2021-12-20
  • 2022-12-23
相关资源
相似解决方案