ASP.NET 复合控件不会冒泡事件,但模板会冒泡事件

发布于 2024-10-24 04:15:35 字数 324 浏览 1 评论 0原文

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

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

知道为什么吗?

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

I am developing a composite control for an ASP.NET application and just by chance initially developed the control to use an ITemplate to create its child controls. There will be a series of buttons within the child controls that are to be handled in the root control. I am using the OnBubbleEvent with CommandName/CommandArgument properties on the buttons to wire it all up. And everything worked great... until I changed the templates to controls.

When I converted the template to a Control and called Controls.Add(new ChildControl()) in my root control instead of InstantiateIn(this), event bubbling no longer works.

Any idea why?

(Everything, and I mean everything, else is the same.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慢慢从新开始 2024-10-31 04:15:35

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

请参阅:http://msdn.microsoft。 com/en-us/library/system.web.ui.control.onbubbleevent.aspx

他们在那里说的。

Your composite control must implement INamingContainer interface in order to receive OnBubbleEvent calls. The CompositeControl class already implements this interface... in your case it stopped working not because of ITemplate thing, but because you changed inheritance from CompositeControl to Control.

See this: http://msdn.microsoft.com/en-us/library/system.web.ui.control.onbubbleevent.aspx

they say it there.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文