我已经在ASP与Telligent CommunityServer积分创建的Web控制使用。控制被写入ASP一些10行C#后端的用于基于权限UI元素的可见性,但我说90%的官能度为直线上升的Javascript。

在控制精美的作品,直到你放弃在同一页上控制的两个实例 - 因为它们指的是完全一样的JavaScript函数,只有一个控制工程

如何借此功能,我有,此1200行的Javascript,并使其使得控制的每个实例可以参考它的JavaScript的每个唯一的实例?

有帮助吗?

解决方案

如果问题仅仅是找出哪些HTML元素触发的事件,然后,很容易 - 它传递给你的事件参数。 (然后你可以得到它的父元素,当然)。所以,如果我理解正确的问题,你有JavaScript函数引用一些控件,其中获得复制?

我不认为有任何神奇的解决方案在这里:你必须要做出的ID是唯一的。如果你不使用服务器端控件(自动处理此为您),那么可以使用一些服务器端产生的前缀或后缀,例如

<input id="<%= ParentControlId %>_mytextbox" type="text" />

其中ParentControlId是父控件的唯一ID(你可以只使用Control.ID如果你不介意长时间的ID)。

当然,你应该尝试重新使用JavaScript函数,而不是复制它们为每个控件实例。如果您使用的服务器生成的ID的方法,你必须通过周围整个标识。如果您使用的前缀的方法你可以绕过前缀。

其他提示

如何在你的控制得到的JavaScript到页面中,然后呢?直接注射呢?您是否在使用的ScriptReference?一旦如果两个控制中引用的浏览器将只加载JS相同JS(同一URL)。

而且,您的JS写在任何旧实例的条款?例如你有喜欢负荷(oControlName)函数或没有加载()函数内部都有一个硬编码的实例名?

IMO,试图得到多个“的JavaScript”不是前进的方向 - 重构你的代码可能会得到你的答案更快

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top