1

我通过以下方式Repeater包含嵌套的自定义控件:CompositeControl

Wrapper

  • Head
  • Body
<asp:UpdatePanel ID="noteArea" UpdateMode="Conditional" ChildrenAsTriggers="false" runat="server" >
    <ContentTemplate>
        <asp:Repeater ID="noteRepeater" runat="server" EnableViewState="true" OnItemDataBound="noteRepeater_ItemDataBound" OnItemCommand="noteRepeater_ItemCommand">
            <ItemTemplate>
                <asp:Button runat="server" CommandName="edit" ID="testButton" />
                <easit:NoteControl ID="noteControl" runat="server" />
            </ItemTemplate>
        </asp:Repeater>
    </ContentTemplate>
</asp:UpdatePanel>

Head控件包含两个Buttons. 当我单击它们中的任何一个时,都不会调用ItemCommand事件。Repeater如果我将按钮向右移动到ItemTemplate,它可以工作。但我需要让它们保持原样。

将它们冒泡到控制层次结构中的正确方法是什么?

4

2 回答 2

3

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

于 2012-12-12T17:11:08.250 回答
1

这些控件在 ItemTemplate 之外 .. 所以它们真的不能触发 ItemCommand。

ItemCommand 具有特定属性,如果它们在 ItemTemplate 之外,您的按钮将无法使用这些属性(例如,ItemIndex,以确定单击项目的索引)

于 2012-12-12T14:00:38.897 回答