【问题标题】:Repeater FooterTemplate Button Click Event Not being handledRepeater FooterTemplate 按钮单击事件未处理
【发布时间】:2015-08-27 14:57:51
【问题描述】:

调试时,单击 btnSignup 不会命中我的 btnSignup_Click 事件第一行的断点。

只是想看看它是否有帮助,我从转发器中删除了 datasourceID,并创建了一个 Sub 例程来在 page_load if-not-isPostback 上对转发器进行数据绑定。这没有帮助。

我需要做什么才能让我的 btnSignup 触发我的 btnSignup_Click 事件?

我的 ASCX 上有这个

<asp:Repeater ID="rptParticipants" runat="server" DataSourceID="sdsParticipants">
        <ItemTemplate>
            <p class="participant"><span class="participant-number"><%# Container.ItemIndex + 1 %>.</span> <span class="participant-name"><%# Container.DataItem("name")%></span></p>
        </ItemTemplate>
        <FooterTemplate>
            <br />            
            <asp:Literal ID="litBlanks" runat="server"></asp:Literal>
            <div class="text-center">
                <asp:Button ID="btnSignup" runat="server" Text="Sign Me Up" CssClass="btnSignup" OnClick="btnSignup_Click" />
                <asp:Button ID="btnRemove" runat="server" Text="Remove Me" CssClass="btnRemove" OnClick="btnRemove_Click" />
            </div>
        </FooterTemplate>
    </asp:Repeater>

我的 ASCX.vb 上有这个

Public Sub btnSignup_Click(sender As Object, e As System.EventArgs)
        CheckAvailability() 'Breakpoint on this line
        'more code here
End Sub

【问题讨论】:

  • 只是为了确认一下,你有Repeater事件的处理程序吗?比如 Command 事件?
  • 另外,你是否操纵中继器?比如更改可见性,或者在每个帖子中重新绑定它,或者类似的东西?
  • 安德烈拒绝转发事件。我是否操纵中继器?不是故意的。
  • 我不知道这是否重要,但我的 rptParticipants 位于一个 ASCX 上,该 ASCX 加载在一个面板内,该面板位于父中继器的 itemtemplate 内。
  • 还有一件事......当您单击 btnSignup 时,页面回发并且上一条评论中提到的父面板为空。

标签: asp.net vb.net


【解决方案1】:

尝试使用中继器上的 ItemCommand 事件来处理您的按钮点击。将 OnClick 属性替换为 CommandName,如下所示:

<asp:Button ID="btnSignup" runat="server" Text="Sign Me Up" CssClass="btnSignup" CommandName="SignUp" />

接下来,为您的中继器的 ItemCommand 事件创建一个事件处理程序:

Protected Sub rptParticipants_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles rptParticipants.ItemCommand

    If e.CommandName = "SignUp" Then

        btnSignup_Click(Me, New System.EventArgs)

    End If

End Sub

【讨论】:

  • NoAlias 感谢您的建议。这是个好主意。不幸的是,这不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 2018-07-06
相关资源
最近更新 更多