2013-05-31 11 views
8

Nella nostra applicazione di asp.net con C#, stiamo usando Ajax con il controllo del pannello di aggiornamento. Nel pannello, abbiamo messo l'esportazione nel pulsante excel all'interno del pannello delle schede.Impossibile trovare il controllo in Pannello di aggiornamento per trigger

Abbiamo anche inserito i trigger dopo la fine del modello di contenuto. Si prega di trovare sotto il codice per il vostro riferimento.

<asp:UpdatePanel ID="UpdatePanelPage" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 

     <table id="tblMain" runat="server" cellpadding="0" cellspacing="0" width="100%"> 
      <tr> 
       <td> 
        <asp:TabContainer ID="TabContainer1" runat="server" Width="100%"> 
         <asp:TabPanel ID="tabCompanyName" runat="server"> 
      <asp:Button ID="btnStateExportToExcel" runat="server" Text="Export To Excel" CssClass="button" OnClick="btnStateExportToExcel_Click" /> 
    </asp:TabPanel> 
</asp:TabContainer> 
        </td> 
      </tr> 
     </table> 
    </ContentTemplate> 
    <Triggers> 
      <asp:PostBackTrigger ControlID="btnStateExportToExcel" /> 
    </Triggers> 
      </asp:UpdatePanel> 

Ora quando eseguiremo la pagina seguente verrà visualizzato l'errore. "Impossibile trovare un controllo con ID 'btnStateExportToExcel' per il trigger in UpdatePanelPage 'UpdatePanel." Qualsiasi idea/suggerimento sarebbe altamente apprezzabile.

* Secondo i risultati di ricerca di Google, il pulsante si trova nel pannello schede a causa della pagina che non è stata in grado di trovare questo controllo.

+0

consultare: http://www.dotnetfunda.com/forums/thread9678-trigger-could-not-find-the-control-id-of-a-button-inside- tabcontainer.aspx – watraplion

+0

Grazie per il suggerimento. Ho provato -quello suggerito-ScriptManager scriptManager = ScriptManager.GetCurrent (this.Page); scriptManager.RegisterPostBackControl (buton1); ma ora l'esportazione in Excel non funzionerebbe. La descrizione dell'errore è: Errore di runtime di Microsoft JScript: Sys.WebForms.PageRequestManagerParserErrorException: Impossibile analizzare il messaggio ricevuto dal server. – Richa

risposta

19

Il pulsante si trova all'interno di altri controlli. È necessario specificare la gerarchia di namingcontainer per il trigger del pannello di aggiornamento. Penso che questo ti aiuta:

<asp:PostBackTrigger ControlID="TabContainer1$tabCompanyName$btnStateExportToExcel" /> 
+1

Scrivo ASP.Net da anni e non avevo idea che potessi usare un percorso di controllo completo lì! Grazie! – agrath

+1

Sì, ma funziona solo se il pulsante non fa parte di una griglia. Come faresti allora a indicare il pannello di aggiornamento su uno dei tanti pulsanti di tipo INVIO? – Fandango68

+1

Non sapevo che potessi fare anche questo. Questo merita più voti. –

Problemi correlati