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