1

我正在为 ASP.NET 应用程序开发一个复合控件,并且偶然地最初开发了该控件以使用 ITemplate 创建其子控件。子控件中将有一系列按钮,这些按钮将在根控件中处理。我在按钮上使用带有 CommandName/CommandArgument 属性的 OnBubbleEvent 将其全部连接起来。一切都很好......直到我将模板更改为控件。

当我将模板转换为控件并在我的根控件中调用 Controls.Add(new ChildControl()) 而不是 InstantiateIn(this) 时,事件冒泡不再起作用。

知道为什么吗?

(一切,我的意思是一切,其他都是一样的。)

4

1 回答 1

0

您的复合控件必须实现 INamingContainer 接口才能接收 OnBubbleEvent 调用。CompositeControl 类已经实现了这个接口......在你的情况下,它停止工作不是因为 ITemplate 的事情,而是因为你将继承从CompositeControl更改为Control

看到这个:http: //msdn.microsoft.com/en-us/library/system.web.ui.control.onbubbleevent.aspx

他们在那里说。

于 2011-04-29T18:23:22.083 回答