LinkBut​​ton没有在Accordion中触发OnClick事件

时间:2010-04-05 20:59:58

标签: .net vb.net ajax accordion linkbutton

我无法获得LinkBut​​tonDelete_Click上的断点。处理AJAX Accordions中的按钮有诀窍吗?谢谢。

<cc1:Accordion ID="Accordion1" runat="server" DataSourceID="ObjectDataSource1"
   SelectedIndex="-1" RequireOpenedPane="false">
     <HeaderTemplate>
        <asp:Label ID="LabelDisplayName" runat="server" Text='<%#Bind("FirstName") %  
          >'></asp:Label>
     </HeaderTemplate>
     <ContentTemplate>
        <asp:LinkButton ID="LinkButtonDelete" runat="server" 
           OnClick="LinkButtonDelete_Click" Text="Delete"></asp:LinkButton>
        ...
     </ContentTemplate>
 </cc1:Accordion>

Public Sub LinkButtonDelete_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim button As LinkButton = CType(sender, LinkButton)
...
End Sub

使用ItemCommand事件:

<cc1:Accordion ID="Accordion1" runat="server" DataSourceID="ObjectDataSource1" 
 SelectedIndex="-1" RequireOpenedPane="false"> 
 <HeaderTemplate> 
    <asp:Label ID="LabelDisplayName" runat="server" Text='<%#Bind("FirstName") %   
      >'></asp:Label> 
 </HeaderTemplate> 
 <ContentTemplate> 
    <asp:LinkButton ID="LinkButtonDelete" runat="server"  
       CommandName="Remove" Text="Delete"></asp:LinkButton> 
    ... 
 </ContentTemplate> 
</cc1:Accordion> 

Private Sub Accordion1_ItemCommand(ByVal sender As Object, ByVal e As     
   System.Web.UI.WebControls.CommandEventArgs) Handles Accordion1.ItemCommand
    If e.CommandName = "Remove" Then
        'Do stuff
    End If
End Sub

2 个答案:

答案 0 :(得分:0)

由于你没有指定谁开发了这个控件,我基本上猜测内部功能。但有一种可能性是,手风琴控件正在使用链接按钮中的事件(尽管您明确定义了linkbutton的onclick事件处理程序。

查看手风琴的事件,看看是否存在可以进行编码的点击(或类似)事件。

修改

好。现在,我知道你正在使用哪种手风琴控制,我知道更多。我的下一个问题是你最后一次刷新AJAX Control Toolkit的DLL是什么时候?如果已经有一段时间了,那么曾经有一个关于控件的正确命名容器的错误。有关详细信息,请访问:http://ajaxcontroltoolkit.codeplex.com/WorkItem/View.aspx?WorkItemId=11615

它在2009年5月修补并修复。

答案 1 :(得分:0)

这确实是一个错误,并已在AJAX Control Toolkit 3.0.31106.0中得到部分修复。出于某种原因需要额外的步骤(其他人似乎不需要这一步??)。我必须每次在页面加载时重新设置手风琴的数据,现在它可以完美地运行。