ASP.NET ImageButton Onclick事件未处理

cdo*_*ner 2 c# asp.net event-handling

我在GridView中有一个ImageButton.

<asp:GridView ID="ItemGridView" runat="server" DataKeyNames="Id" 
     OnRowDataBound="ItemGridView_RowDataBound" AllowPaging="True" 
     AllowSorting="True" EnableSortingAndPagingCallbacks="True" 
     AutoGenerateEditButton="False" AutoGenerateDeleteButton="false"
     DataSourceID="ItemDataSource" EnableViewState="true" >
    ....
    <asp:TemplateField ShowHeader="False" ItemStyle-Width="40px">
      <ItemTemplate>
         <asp:ImageButton ID="btnDelete" SkinID="btnDelete"
            runat="server" CausesValidation="false"
            OnClick="btnDeleteAccountItem_Click" 
            OnClientClick="javascript:return confirm('Are you sure?');" />
       </ItemTemplate>
    </asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

以及删除按钮事件的相应处理程序

protected void btnDeleteAccountItem_Click(object sender, EventArgs e) {
    ImageButton btnDel = sender as ImageButton;
    GridViewRow row = (GridViewRow)btnDel.NamingContainer;
    ....
}
Run Code Online (Sandbox Code Playgroud)

我在很多地方使用这个相同的结构,它工作正常.我现在有一个gridview,但它没有,我希望得到一些关于如何追查问题的想法.当我单击按钮时,会触发客户端事件并显示警告框,然后回发触发,我可以在Page_Load方法中点击一个断点.所以按钮事件的客户端布线似乎工作.但是,不处理该事件,并且不会调用方法btnDeleteAccountItem_Click.

这是一个复杂的页面,我无法发布所有代码.我该怎样做才能缩小潜在原因?

ric*_*ott 5

您的事件定义不正确ImageButton.Click:

protected void btnDeleteAccountItem_Click(object sender, ImageClickEventArgs e) {
    ImageButton btnDel = sender as ImageButton;
    GridViewRow row = (GridViewRow)btnDel.NamingContainer;
    ....
}
Run Code Online (Sandbox Code Playgroud)