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



我在用户控件中有一个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就可以完成这项工作。

在此阶段,客户端 ID 已准备就绪。

可以直接传递客户端 ID。

无需使用引用 (<%=btnAddFile.ClientID%>),因此用户控件也可以在转发器或网格视图中使用。

最新更新