我在用户控件中有一段 JavaScript 代码,如果用户控件在开始时可见,它就可以正常工作。
然后,我将此用户控件添加到页面上的面板 -> 仍然正常工作。
接下来,我将此用户控件添加到页面上的面板并使面板不可见。(在 aspx 文件中设置或在 csfile 中的 Page_Load 中设置)
该页面将加载错误:“JavaScript 运行时错误:'myFunction' 未定义”
它用于 AsyncFileUpload 中的 OnClientUploadComplete,因此我无法传递任何参数。
我发现的唯一解决方法是使面板“隐藏”而不是可见:页面中的“False”具有此用户控件。
SomePanel.Attributes.Add("style", "visibility:hidden");
但是这种方式需要修改所有页面使用这个用户控件orz。
任何想法将不胜感激。
JavaScript 代码:
<script type="text/javascript">
function myFunction() {
var ButtonID = '<%=btnAddFile.ClientID%>';
document.getElementById(ButtonID).click();
}
</script>
它用于 AsyncFileUpload 中的“OnClientUploadComplete”
<cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" OnClientUploadComplete="myFunction" OnUploadedFileError="AsyncFileUpload1_UploadedFileError" />
如果我将 JavaScript 移动到母版页或其他地方,我将在获取 ClientId 时遇到问题。我会说最好处理用户控件内的所有内容......如果可能的话
在 Page_PreRender 中编写 javascript 将完成这项工作。
在此阶段,ClientID 已准备就绪。
ClientID 可以直接传递。
无需使用引用 (<%=btnAddFile.ClientID%>),因此用户控件也可以在中继器或网格视图中使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句