1

我有这个代码 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>

当我尝试访问网站时收到以下消息;

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

异常详细信息:System.InvalidOperationException:必须在 UpdatePanel“UpdatePanel1”中的触发器上设置 ControlID 属性。

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

我找不到解决方案!

谁能帮助我做错了什么?

4

2 回答 2

1

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

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

您忘记了写入事件名称,您应该使用AsyncPostBackTrigger

例如,这是触发器的实际用法:

<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>
于 2013-05-22T11:21:24.867 回答
0

我认为问题在于 btnExcel 设置为 Visible="false",当为 false 时,它​​根本不会呈现到页面上。但是您的部分将寻找一个名为 btnExcel 的控件,但这不存在...

于 2016-08-10T16:12:12.173 回答