如何在不可见的用户控件中使用JavaScript函数

时间:2018-01-10 19:03:17

标签: javascript c# asyncfileupload webusercontrol

我在用户控件中有一个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的问题。 我说最好处理用户控件内的所有内容......如果可能的话

1 个答案:

答案 0 :(得分:0)

Link

在Page_PreRender中编写javascript将完成这项工作。

在此阶段,ClientID准备就绪。

ClientID可以直接传递。

无需使用引用(&lt;%= btnAddFile.ClientID%&gt;),因此用户控件也可用于转发器或网格视图。