必须在UpdatePanel 'UpdatePanel1'中的触发器上设置ControlID属性

本文关键字:触发器 属性 ControlID 设置 UpdatePanel1 UpdatePanel | 更新日期: 2023-09-27 18:14:43

我有这样的代码apsx:

<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional" ChildrenAsTriggers="False">
    <ContentTemplate>
    <asp:Button ID="btnUpdateTable" runat="server" Text="Actualizar" Visible="False" />
    <asp:Button ID="btnGraph" runat="server" Text="Gráfico" Visible="False" PostBackUrl="ShowGraph.aspx" />
    <asp:Button ID="btnExcel" runat="server" Text="Excel" Visible="False" />
    <asp:Timer ID="Timer1" runat="server" Interval="5000"/>
    <table cellspacing="0" cellpadding="0" border="0">
        <tr><td>
            <div style="width: 100%">
                    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" BorderColor="Silver"
                BorderStyle="Solid" BorderWidth="1px" CellPadding="5" CellSpacing="1" CssClass="ttc"
                ForeColor="Silver" HorizontalAlign="Left" AllowPaging="True" PageIndex="1">
                <PagerSettings LastPageImageUrl="~/Images/arrow_end.gif" PreviousPageImageUrl="~/Images/arrow_left.gif" FirstPageImageUrl="~/Images/arrow_beg.gif" Position="Top" NextPageImageUrl="~/Images/arrow_right.gif" Mode="NextPreviousFirstLast"></PagerSettings>
                <RowStyle CssClass="ttc"></RowStyle>
                <SelectedRowStyle CssClass="ttcs"></SelectedRowStyle>
                <PagerStyle CssClass="ttc"></PagerStyle>
                <HeaderStyle CssClass="thc"></HeaderStyle>
                    </asp:GridView> 
        </div>
        </td></tr>
        <tr><td>
            <asp:Panel ID="pnlLabelValues" runat="server">
        </asp:Panel>
        </td></tr>
    </table>
    </ContentTemplate>
  <Triggers>
    <asp:PostBackTrigger ControlID="btnExcel" />
    </Triggers>
</asp:UpdatePanel>

和我得到以下消息时,我试图去的网站;

controllid属性必须在UpdatePanel 'UpdatePanel1'中的触发器上设置。描述:在执行当前web请求期间发生了未处理的异常。请查看堆栈跟踪以获得有关错误及其在代码中的起源位置的更多信息。

Exception Details: System。InvalidOperationException:必须在UpdatePanel 'UpdatePanel1'中的触发器上设置ControlID属性。

在执行当前web请求期间生成了一个未处理的异常。有关异常的来源和位置的信息可以使用下面的异常堆栈跟踪来识别。

我找不到解决方法!

谁能告诉我我做错了什么?

必须在UpdatePanel 'UpdatePanel1'中的触发器上设置ControlID属性

必须按如下方式使用触发器:

 <Triggers>
        <asp:AsyncPostBackTrigger ControlID="drpApplicationMeqsed" EventName="SelectedIndexChanged" />
 </Triggers>

你忘记了写事件的名称,你应该使用AsyncPostBackTrigger

例如,下面是trigger的一个真实用法:

<asp:UpdatePanel ID="updGoal" runat="server" ClientIDMode="Static" UpdateMode="Conditional">
    <ContentTemplate>
        <table id="appEnterForm:selectMenus">
            <tbody>
                <tr>
                    <td>
                        <label for="drpApplicationGoal">
                            The goal of application</label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:DropDownList ID="drpApplicationGoal" runat="server" Width="498px" ClientIDMode="Static"
                            AutoPostBack="True" OnSelectedIndexChanged="drpApplicationGoal_SelectedIndexChanged">
                        </asp:DropDownList>
                    </td>
                </tr>
            </tbody>
        </table>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="drpApplicationGoal" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>

我认为问题是btnExcel被设置为Visible="false",当为false时,它根本没有呈现到页面。但是你的section要寻找一个名为btnExcel的控件,但是这个不存在