document.getElementById('" + Button2.ClientID + "').click(); 问题
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "", "document.getElementById('" + Button2.ClientID + "').click();",为什么就说找不到getElementById为null --------------------编程问答-------------------- string.Format("document.getElementById('{0}')",Button2.ClientID); --------------------编程问答-------------------- 还是不行呀 --------------------编程问答-------------------- Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "", "document.getElementById('Button2').click();", --------------------编程问答-------------------- 因为你的button2控件事服务器控件 ,他的clientID属性在IE生成六览的时候会自动加上前缀,然后和你是用clientID获得的组成一个新的ID,所以在客户端你是找不到的! --------------------编程问答-------------------- 完全没有问题我刚试验过了
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "", "document.getElementById('" + Button2.ClientID + "').click();");
请注意你的拼写 好像少个括号
Button2.ClientID就是指客户端控件id 没有任何问题 --------------------编程问答-------------------- 我刚用2005(汗),用这个方法也找不到,即使用Button2.ClintId也不行,而且查看html代码,发现document.getElementById()的参数跟html控件Id是一样的,另外document.all也不行 --------------------编程问答-------------------- ClientScript.RegisterClientScriptBlock(this.GetType(), "empty", "<script language=\"javascript\" type=\"text/javascript\">alert('" + txt.ToolTip + "');document.getElementById('" + txt.ClientID + "').focus();</script>");
这是我的代码 --------------------编程问答-------------------- 总算折腾明白了
因为RegisterClientScriptBlock注册脚本位置
是在是在form之后第一行,此时客户端Button2还没有生成,所以无法点击click()
所以你可以使用RegisterStartupScript注册脚本位置
是form结束之前最后一行,此时客户端Button2已经生成
还有就是你必须加上一个参数true 以确保输出<script></script>标签
ClientScript.RegisterStartupScript(Page.GetType(),"","document.getElementById('" + Button2.ClientID + "').click();",true);
--------------------编程问答-------------------- 所以注册脚本时
如果语句中有click()或者focus()必须保证客户端控件产生以后才可以
此时建议使用RegisterStartupScript
如果只是注册一些客户端函数 当然RegisterClientScriptBlock是完全可以的
补充:.NET技术 , ASP.NET