2013-05-31 75 views
8

在我们使用c#的asp.net应用程序中,我们使用Ajax和更新面板控件。 在面板中,我们已经将导出导出为标签面板内的excel按钮。无法在更新面板中找到触发器的控件

我们还在内容模板结束后放置了触发器。请查找以下代码供您参考。

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

现在当我们运行下面的错误页面时会显示错误。 “UpdatePanel”UpdatePanelPage“中的触发器无法找到带有ID”btnStateExportToExcel“的控件。” 任何想法/建议都将非常可观。

*根据Google的搜索结果,该按钮驻留在选项卡面板中,因为该页面无法找到该控件。

+0

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

+0

感谢您的建议。 我尝试过 - 建议什么 - ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); scriptManager.RegisterPostBackControl(buton1); 但现在导出到Excel功能将无法正常工作。 错误描述为: Microsoft JScript运行时错误:Sys.WebForms.PageRequestManagerParserErrorException: 从服务器收到的消息无法解析。 – Richa

回答

19

您的按钮位于其他控件内。您应该为更新面板触发器指定命名容器层次结构。我认为这可以帮助你:

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

我一直在写ASP.Net多年,我不知道你可以在那里使用完整的控制ID路径!谢谢! – agrath

+1

是的,但这只适用于该按钮不是gridview的一部分。那么你如何将updatepanel指向许多SUBMIT类型的按钮之一? – Fandango68

+1

我不知道你也可以这样做。这值得更多的选票。 –

相关问题