2

我无法获得 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
4

2 回答 2

0

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

于 2010-04-14T16:35:10.657 回答
0

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

查看手风琴的事件,看看是否有可访问的单击(或类似)事件,您可以针对这些事件编写代码。

编辑:

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

它于 2009 年 5 月进行了修补和修复。

于 2010-04-05T21:08:05.247 回答