Repeater FooterTemplate按钮单击事件未处理

时间:2015-08-27 14:57:52

标签: asp.net vb.net

调试时,单击btnSignup不会触发btnSignup_Click事件第一行的断点。

只是为了看看它是否帮助我从repater中删除了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

1 个答案:

答案 0 :(得分:0)

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

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

接下来,为Repeater的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