2013-05-31 15 views
8

nicht finden In unserer Anwendung von asp.net mit C# verwenden wir Ajax mit Update-Panel-Steuerelement. In Panel, haben wir den Export zu Excel-Taste innerhalb der Registerkarte.Steuerelement in Update Panel für Trigger

Wir haben auch Trigger nach Beendigung der Inhaltsvorlage eingefügt. Bitte finden Sie unten Code für Ihre Referenz.

<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> 

Jetzt, wenn wir die Seite ausführen, würde der folgende Fehler angezeigt werden. "Ein Steuerelement mit ID 'btnStateExportToExcel' konnte nicht für den Trigger in UpdatePanel 'UpdatePanelPage' gefunden werden." Jede Idee/Vorschlag wäre sehr bemerkenswert.

* Gemäß den Suchergebnissen von Google befindet sich die Schaltfläche im Registerkartenbereich, aufgrund dessen die Seite dieses Steuerelement nicht finden konnte.

+0

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

+0

Danke für den Vorschlag. Ich habe versucht - was vorgeschlagen wurde - ScriptManager scriptManager = ScriptManager.GetCurrent (this.Page); scriptManager.RegisterPostBackControl (button1); aber jetzt würde der Export zu Excel-Funktionalität nicht funktionieren. Die Fehlerbeschreibung lautet: Microsoft JScript-Laufzeitfehler: Sys.WebForms.PageRequestManagerParserErrorException: Die vom Server empfangene Nachricht konnte nicht analysiert werden. – Richa

Antwort

19

Ihre Schaltfläche befindet sich in anderen Steuerelementen. Sie sollten die namingcontainer-Hierarchie für den Aktualisierungsbereichstrigger angeben. Ich denke, das hilft Ihnen:

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

Ich schreibe ASP.Net seit Jahren und ich hatte keine Ahnung, dass Sie dort einen vollständigen Kontroll-ID-Pfad verwenden könnten! Vielen Dank! – agrath

+1

Ja, aber das funktioniert nur, wenn die Schaltfläche nicht Teil einer Gridview ist. Wie würden Sie dann das updatepanel auf einen der vielen SUBMIT type Buttons zeigen? – Fandango68

+1

Ich wusste nicht, dass du das auch tun kannst. Dies verdient mehr Stimmen. –