在UpdatePanel中,直接使用Page.ClientScript.RegisterStartupScript的方式执行javascript,会导致无法执行。原因可能是因为RegisterStartupScript是在页面加载时启动js的,而在updatepanel中却是部分刷新,因此是无法注册的。RegisterStartupScript 将 js嵌入到页面的底部,</form> 的前面,而RegisterClientScriptBlock 将 js嵌入到页面中开启元素 <form> 后面。这两个方法都属于Page的范围,其中的js在UpdatePanel中都是无法执行的。
解决方法是使用System.Web.UI.ScriptManager.RegisterStartupScript。
示例:
ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "click", func, true);