5

Ho pannello di aggiornamento nella pagina Master:ASP.NET - pannello di aggiornamento nella pagina master, pulsante di aggiornamento in Content Pagina

<asp:ScriptManager id="CartScript" runat="server"></asp:ScriptManager>  
<asp:UpdatePanel id="CartBox" runat="server" updateMode="Conditional"> 
    <ContentTemplate> 
    Košík [ <asp:HyperLink NavigateUrl="~/Account/Login.aspx" ID="ShoppingCart" runat="server" text="" /> ] <asp:LinkButton ID="DeleteCart" runat="server" Text="Vymazat košík" OnClick="ThrowCart_Click" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

and Buy Button nella pagina Il contenuto:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">  
    <asp:Button ID="BuyButton" Runat="server" Text="Přidat do košíku" onclick="Buy_Click" /> 
</asp:Content> 

Quindi ho bisogno aggiungi al pannello Aggiorna AsyncPostBackTrigger per questo pulsante.

Prima ho provato inserirlo dalla pagina di contenuto:

protected void Page_Load(object sender, EventArgs e) 
{ 
    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();   
    trigger.ControlID = "BuyButton"; 
    UpdatePanel panel = (UpdatePanel)Master.FindControl("CartBox"); 
    if (panel != null) 
    { 
     panel.Triggers.Add(trigger); 
    } 
    ScriptManager script = (ScriptManager)Master.FindControl("CartScript"); 
    script.RegisterAsyncPostBackControl(BuyButton); 
} 

Ma lo ha fatto l'errore: Un controllo con ID 'BuyButton' non è stato trovato per il trigger in UpdatePanel 'CartBox'.

così ho provato aggiungere dalla pagina Master:

protected void Page_Load(object sender, EventArgs e) 
{     
    if ((Button)MainContent.FindControl("BuyButton")!=null) 
    { 
     AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); 
     trigger.ControlID = ((Button)MainContent.FindControl("BuyButton")).ID; 
     CartBox.Triggers.Add(trigger); 
     CartScript.RegisterAsyncPostBackControl((Button)MainContent.FindControl("BuyButton")); 
    } 
} 

ma ho ottenuto lo stesso errore. :-(

Così u può dirmi come posso aggiungere al mio pannello di aggiornamento che Button dal contenuto della pagina può aggiornarlo?

risposta

1

Modifica

Posizionare il pulsante BuyButton all'interno della propria UpdatePanel come nella pagina di contenuto, aggiungi il tuo AsyncPostBackTrigger a quel nuovo UpdatePanel, quindi sarà in grado di trovare il pulsante e utilizzerà ScriptManager dalla pagina principale.

+3

Il pannello di aggiornamento è in MasterPage e il pulsante no. –

+0

@StackOverflowException: Ah, ho perso quel dettaglio. Grazie :) – mellamokb