为这个问题搞了好久,郁闷的要死。
我有一个母版页,上面有用户名,密码输入框,还有一个登入的LinkButton。
现在有个子页,在子页上登入。我要做的事情就是输入完密码后按回车可以执行LinkButton的单击事件。就这么简单的一个事情,为之查了多少资料啊,研究来研究去,最后一一道来:
LinkButton
1.LinkButton不像真的按钮,它没有Click方法,所以肯定不能是document.all[button].click();
2.不明白为什么Asp.Net对于TextBox只有TextChanged事件,唉!想知道在TextBox中按了什么键,幸好有JavaScript还有Event对象。给TextBox加个onkeypress事件,写在后台代码里面
txtPass.Attributes.Add("onkeypress", "if(event.keyCode == 13){__doPostBack('"+lbtnLogin.ClientID.Replace('_','$')+"','')}");
3.就为上面这一句代码,研究了N久。用ClientId得到是ctl00_lbtnLogin。死活不行,看了源文件LinkButton的代码中的ID参数却是用“$”。
<a id="ctl00_lbtnLogin" href="javascript:__doPostBack('ctl00$lbtnLogin','')">登入</a>
我用的是VS2008,asp.net3.5。以为发布后会可以的(很多问题Debug模式下不行),结果也不行。最好只好把"_"替换成"$"了,这样以来,控件的ID中就不能有“_”了,真郁闷啊