如何使 JavaScript 函数在不可见的用户控件中可用
How to make a JavaScript function available in a invisible user control
我在用户控件中有一个 JavaScript 代码,如果用户控件在启动时可见,它工作正常。
然后,我将此用户控件添加到页面上的面板 -> 仍然工作正常。
接下来,我将此用户控件添加到页面上的面板中,并使面板不可见。 (在 aspx 文件中设置或在 csfile 中设置 Page_Load)
页面将加载错误:
"JavaScript runtime error: 'myFunction' is undefined"
它用于 AsyncFileUpload 的 OnClientUploadComplete,因此我无法传递任何参数。
我发现的唯一解决方法是使面板 "hidden" 而不是可见:"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。
我会说最好在用户控件内处理所有内容....如果可能的话
Link
在 Page_PreRender 中写入 javascript 即可。
在此阶段,ClientID 已准备就绪。
直接传ClientID即可。
无需使用引用 (<%=btnAddFile.ClientID%>),因此用户控件也可以在转发器或网格视图中使用。
我在用户控件中有一个 JavaScript 代码,如果用户控件在启动时可见,它工作正常。
然后,我将此用户控件添加到页面上的面板 -> 仍然工作正常。
接下来,我将此用户控件添加到页面上的面板中,并使面板不可见。 (在 aspx 文件中设置或在 csfile 中设置 Page_Load)
页面将加载错误: "JavaScript runtime error: 'myFunction' is undefined"
它用于 AsyncFileUpload 的 OnClientUploadComplete,因此我无法传递任何参数。
我发现的唯一解决方法是使面板 "hidden" 而不是可见:"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。 我会说最好在用户控件内处理所有内容....如果可能的话
Link
在 Page_PreRender 中写入 javascript 即可。
在此阶段,ClientID 已准备就绪。
直接传ClientID即可。
无需使用引用 (<%=btnAddFile.ClientID%>),因此用户控件也可以在转发器或网格视图中使用。