C# 当单击复合控件内的按钮时,Repeater ItemCommand不会激发

C# 当单击复合控件内的按钮时,Repeater ItemCommand不会激发,c#,asp.net,repeater,composite-controls,C#,Asp.net,Repeater,Composite Controls,我有一个中继器包含嵌套的自定义复合控件控件,其方式如下: Wrapper Head Body 头部控件包含两个按钮。当我单击其中一个时,Repeater的ItemCommand事件不会被调用。如果我将按钮向右移动到ItemTemplate,它会工作。但我需要让他们留在原地 在控件层次结构中使用气泡的正确方法是什么?这些控件位于ItemTemplate之外。。所以他们真的不能触发ItemCommand ItemCommand具有特定属性,如果按钮位于ItemTemplate之外,则这些属性

我有一个
中继器
包含嵌套的自定义
复合控件
控件,其方式如下:

Wrapper

  • Head
  • Body

头部
控件包含两个
按钮
。当我单击其中一个时,
Repeater
ItemCommand
事件不会被调用。如果我将按钮向右移动到
ItemTemplate
,它会工作。但我需要让他们留在原地


在控件层次结构中使用气泡的正确方法是什么?

这些控件位于ItemTemplate之外。。所以他们真的不能触发ItemCommand


ItemCommand具有特定属性,如果按钮位于ItemTemplate之外,则这些属性对按钮不可用(例如ItemIndex,用于确定单击项目的索引)

这些控件位于ItemTemplate之外。。所以他们真的不能触发ItemCommand


ItemCommand具有特定属性,如果按钮不在ItemTemplate(例如ItemIndex,用于确定单击项目的索引),则按钮将无法使用这些属性。

您可以让控件引发页面(使用中继器)可以侦听的事件。初始化每个控件时,可以提供事件所需的任何信息。

您可以让控件抛出一个事件,您的页面(带有中继器)可以侦听该事件。初始化每个控件时,都可以提供事件所需的任何信息。

但是
包装器
控件是在
项模板
中定义的。这是否仍然意味着它的子控件不在它的范围内?但是
包装
控件是在
ItemTemplate
中定义的。这是否仍然意味着它的子控件不在它的控制范围内?嗨,我试过这么做,但遇到了另一个问题。该流从未到达我为button click定义的事件处理程序,即使我在包含它的控件中绑定它
OnInit
。我怀疑这是因为它的父控件创建了它的控件结构
OnPreRender
,但如果我尝试将其移动到
OnLoad
OnInit
中继器显示为空。这是因为按钮事件处理程序不会捕获该事件,中继器所在的页面将处理该事件。让按钮捕获事件的唯一原因是能够获取有关单击哪个元素的信息。正如我在回答中所说,您可以向UC传递处理事件所需的任何信息。这有意义吗?@AlexandarŽivkovič:谢谢你,先生。对你来说一切都好吗?还有问题吗?不客气。最后,我去掉了
包装器
控件,将
直接放在
项模板
中,并使用
项命令
事件响应单击。不过,在处理
ViewState
方面还有很多需要学习的地方。无论如何,我非常感谢你的意见:)嗨,我试过这么做,但遇到了另一个问题。该流从未到达我为button click定义的事件处理程序,即使我在包含它的控件中绑定它
OnInit
。我怀疑这是因为它的父控件创建了它的控件结构
OnPreRender
,但如果我尝试将其移动到
OnLoad
OnInit
中继器显示为空。这是因为按钮事件处理程序不会捕获该事件,中继器所在的页面将处理该事件。让按钮捕获事件的唯一原因是能够获取有关单击哪个元素的信息。正如我在回答中所说,您可以向UC传递处理事件所需的任何信息。这有意义吗?@AlexandarŽivkovič:谢谢你,先生。对你来说一切都好吗?还有问题吗?不客气。最后,我去掉了
包装器
控件,将
直接放在
项模板
中,并使用
项命令
事件响应单击。不过,在处理
ViewState
方面还有很多需要学习的地方。无论如何,我非常感谢你的意见:)