在页面中两次具有相同的自定义控件的问题

时间:2011-03-23 05:55:12

标签: asp.net

当我尝试在同一页面中添加两次相同的自定义控件时,我遇到了问题。问题是因为一个控件的实例正在调用另一个控件的java脚本。除此之外,我正在使用ajax popup extender,其中我在该控件本身中有popup div。 现在它导致了java脚本错误,因为它在弹出的div ID和脚本等之间存在混淆。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

进一步注意为自定义控件的每个实例内的标记唯一生成的客户端ID。

通过将runat="server"属性添加到要在呈现给浏览器时拥有唯一客户端ID的标记,可以轻松解决此问题。那么你应该在JS中使用这种代码:

document.getElementById("<%= control.ClientID %>");

对于您不想使用runat属性标记的标记,您可以在自定义控件的每个实例中手动为服务器端唯一地分配它们的ID。

我希望这有帮助!

答案 1 :(得分:0)

没有自动修复此问题。如果要在页面上多次使用自定义控件,则必须将其设计为意识到这一点。特别是,您可能需要使用生成的id

来引用生成的元素
var ele = document.getElementById("<%= serverSideControl.ClientID %>");

控件发出的Javascript也必须发出相应的ID。

等等。