2012-06-25 49 views
1

我有一些奇怪的行爲。在某些情況下ascx內部丟失事件

我有一個控件(InformationalPanel.ascx)誰被放在兩個不同的aspx頁面。在其中一個(SendSmsFile.aspx)萬聖節工作正常,但在其他(SendMessage.aspx),雖然控制正確渲染,裏面的事件不起作用。

的控制是誰擁有平等的ASP頭和母版相同

<%@ Page Language="C#" MasterPageFile="~/Default.Master" AutoEventWireup="True" CodeBehind="SendMessage.aspx.cs" Inherits="Messages.SendMessage" ValidateRequest="false"%> 

等於內aspx頁面...

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

控制有一個LinkBut​​ton誰在某些情況下,失去了點擊一箇中繼器事件

<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'其中填充中繼器(DataBind)的方法是Refresh

我在aspx頁面運行調試,但我無法發現爲什麼在一個一切正常,在另一個事件(scheduleLinkButton_ClickrepeaterPartsToSchedule_ItemCommand)不是火!

希望我很明確的,對不起,我的英語

感謝

+0

您已經驗證的回發是怎麼回事?在回發時,你能否檢查Request.Params [「__ EVENTTARGET」]是否與你期望的相同(例如,比較工作的頁面和不工作的頁面)? –

回答

0

確認你不每次綁定你的控制,

You can use in your bind this bloc 

If(! IsPostBack) 
{ 

} 
+0

只有在調用Refesh方法時,該控件纔是綁定的。當我更改控件的可見性時,Refresh方法被調用一次。 –

相關問題