我有一些奇怪的行为。
我有一个控件(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>
控件有一个带LinkButton的转发器,在某些情况下会丢失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_Click
或repeaterPartsToSchedule_ItemCommand
)并不火!
希望我足够明确并抱歉我的英语
由于
答案 0 :(得分:0)
确保每次都不绑定控件,
You can use in your bind this bloc
If(! IsPostBack)
{
}