在某些情况下,ascx内部丢失了事件

时间:2012-06-25 15:16:50

标签: c# asp.net events

我有一些奇怪的行为。

我有一个控件(InformationalPanel.ascx)被放在两个不同的aspx页面中。在其中一个(SendSmsFile.aspx)中,everythings工作正常但在其他(SendMessage.aspx)中,虽然控件正确呈现,但内部事件不起作用。

在具有相同asp标题和相同母版页

的aspx页面内,控件是相同的
<%@ Page Language="C#" MasterPageFile="~/Default.Master" AutoEventWireup="True" CodeBehind="SendMessage.aspx.cs" Inherits="Messages.SendMessage" ValidateRequest="false"%>

...

<asp:Panel ID="panelSubmissionScheduler" runat="server" Visible="false">
    <uc2:InformationalPanel ID="submissionSchedulerInformationalPanel" runat="server" />
</asp:Panel>

控件有一个带LinkBut​​ton的转发器,在某些情况下会丢失Click事件

<asp:Repeater ID="repeaterPartsToSchedule" runat="server" OnItemCommand="repeaterPartsToSchedule_ItemCommand"
                OnItemDataBound="repeaterPartsToSchedule_ItemDataBound">
                <ItemTemplate>
                    ...
                    <asp:LinkButton ID="scheduleLinkButton" runat="server" Text="<%$ Resources:ResourcesDefault, Schedule %>"
                        CssClass="button_serv" CommandName="schedule" OnClick="scheduleLinkButton_Click" />
                    ...
                </ItemTemplate>
            </asp:Repeater>

当可见性发生变化时(因为某些业务规则),我调用ascx的Refresh方法来填充转发器(DataBind)。

我在to aspx页面中运行debug但是我无法发现为什么一切都在工作,而在另一个中,事件(scheduleLinkButton_ClickrepeaterPartsToSchedule_ItemCommand)并不火!

希望我足够明确并抱歉我的英语

由于

1 个答案:

答案 0 :(得分:0)

确保每次都不绑定控件,

You can use in your bind this bloc

If(! IsPostBack)
{

}