昨天在项目中遇到了很奇怪的问题,就是按钮获取焦点的问题,我一直不能按照我的代码来控制按钮的焦点,最后我采用了笨的办法来实现我的功能,也就有了上一篇博客中的文章。今天我查了一下,原来和是按钮的UseSubmitBehavior 属性,当我把这个属性设置为false以后,就可以控制我的焦点了,我们看一下MSDN对这个属性的描述:
使用 UseSubmitBehavior 属性来指定 Button 控件使用客户端浏览器的提交机制还是 ASP.NET 回发机制。默认情况下,此属性的值为 true,从而导致 Button 控件使用浏览器的提交机制。如果指定为 false,则 ASP.NET 页框架将客户端脚本添加到页面,以将窗体发送到服务器。
当 UseSubmitBehavior 属性为 false 时,控件开发人员可以使用 GetPostBackEventReference 方法来返回 Button 的客户端回发事件。GetPostBackEventReference 方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。
我们做个简单的测试,在页面上放一个按钮,分别设置该属性的true和false,然后我们对比产生的HTML页面源码,可以看见false的时候页面上有脚本,这是ASP.NET回发服务器用的。
在看一下具体的按钮的HTML代码,我们看到了熟悉的dopostback函数,这个就是按钮用来向服务器回发的。
看来以后还是要多熟悉控件的属性,这样工作起来效率采可以提高。