在后台调用Control.Focus(),出现脚本错误
在我本机没有问题,可是放到虚拟主机就就会报脚本错误
行:303
字符:1
代码:0
错误:缺少对象
网址:http://www.jydarling.com/register.aspx
我试了多次,觉得就是Control.Focus()引起的,这条语句会在页面中生成js脚本:
WebForm_AutoFocus( 'txtUserName ');
求教
------解决方案--------------------aspnet_regiis -u
aspnet_regiis -i
------解决方案--------------------那你写脚本啊
Response.Write( " <script language=javascript> document.getElementById( ' " + Control.ClinetID + " ') </script> ")
------解决方案--------------------xiedan79(Sam Xie)的大概是马虎了,脚本中一行只写了一半。
如果确实是 WebForm_AutoFocus 有问题,你可以自立更生不用asp.net控件的方法,大致写:
static public void SetFocus(Control ctl)
{
if(ctl.Page==null)
throw new Exception( "调用SetFocus方法的控件没有事先放入页面控件树中。 ");
string scp= "document.getElementById( '{0} ').focus(); ";
ctl.Page.ClientScript.RegisterStartupScript(ctl.GetType(), "setfocus ",
string.Format(scp,ctl.ClientID),true);
}