【发布时间】:2013-04-13 14:01:29
【问题描述】:
我已经看到了与此类似的问题和答案,但似乎没有一个可以解决问题。
我在更新面板中有一个用户控件。在我的用户控件中,我输出 javascript。
javascript 在触发时不会触发。如果我将 javascript 移动到 usercontrol/updatepanels 之外的父页面,那么它会触发。这样做是没有意义的,因为我不能在另一个页面上使用这个用户控件而不复制代码......通过复制整个 javascript(不同的站点)或在每个页面中添加对 .js 文件的引用它使用在(同一站点)上。它只是不太便携
我只想输出带有控件的 javascript(在更新面板内)。
提到更新面板是为了确保我正在做的事情的准确性。即使我将用户控件放在更新面板之外,它也不起作用。
保持简单(这对我不起作用):
用户控制:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="_location.ascx.cs" Inherits="_location" %>
<script type="text/javascript">
function test() {
alert('Hello World!');
}
</script>
<a href="javascript:void(0);" onclick="javascript:test();">
Find For Me
</a>
家长:
<uc1:_location runat="server" ID="_location" />
在 chrome 中调试告诉我“未捕获的 ReferenceError:未定义测试”
如果我将javascript直接添加到onclick,如下所示,它可以工作:
onclick="alert('Hello World!');"
如上所述,将功能移动到父页面也可以。
就好像浏览器忽略了用户控件的脚本输出。
有什么想法吗?
【问题讨论】:
-
你的代码对我来说很好。
-
@chamara 如果您调用它并从 UpdatePanel 中更新它,此代码将不起作用。
标签: javascript asp.net user-controls