相关疑难解决方法(0)

ASP.NET - 控制事件不在Repeater内部触发

这是一个荒谬的常见问题,已经用尽了所有明显的解决方案,我希望SO能为我提供一些输入......我在一个页面内有一个UserControl,其中包含一个转发器,它包含几个导致回发的控件.麻烦的是,转发器内部的所有控件在回发时都不会碰到它们的事件处理程序,但是在转发器外部(仍然在UC中)的控件被正确处理.我已经确定我的控件由于丢失if(!IsPostBack)而没有重新生成,并且我验证了Request.Form ["__ EVENTTARGET"]在Page_Load事件中包含正确的控件ID.我试图在一个单独的项目中重现这些症状,并且它应该正常工作.

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="NoteListControl.ascx.cs"
    Inherits="SantekGBS.Web.UserControls.NoteListControl" %>

<asp:UpdatePanel ID="upNotes" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="NoteList" id="divNoteList" runat="server">
            <asp:Repeater ID="repNotes" runat="server">
                <HeaderTemplate>
                    <table width="98%" cellpadding="3" cellspacing="0">
                </HeaderTemplate>
                <ItemTemplate>
                    <tr class="repeaterItemRow">
                        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Content/images/DeleteIcon.gif"
                            OnClick="ibRemove_Click" CommandArgument='<%# Container.ItemIndex %>' CommandName='<%# Eval("ID") %>'
                            CausesValidation="false" AlternateText="Delete" />
                        <%# Eval("Text") %></td>
                    </tr>
                </ItemTemplate>
                <FooterTemplate>
                    </table>
                </FooterTemplate>
            </asp:Repeater>
            <asp:PlaceHolder ID="phNoNotes" runat="server" Visible="false">
                <div class="statusMesssage">
                    No notes to display.
                </div>
            </asp:PlaceHolder>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
public partial class NoteListControl : UserControl
{
    [Ninject.Inject]
    public …
Run Code Online (Sandbox Code Playgroud)

asp.net events user-controls postback

8
推荐指数
1
解决办法
8289
查看次数

标签 统计

asp.net ×1

events ×1

postback ×1

user-controls ×1