为什么ASP.NET认为我的控件没有';不存在?

为什么ASP.NET认为我的控件没有';不存在?,asp.net,updatepanel,Asp.net,Updatepanel,我有一个带有UpdatePanel的ASP.NET表单。我为UpdatePanel定义了两个AsyncPostBackTriggers;两者都是按钮,它们都做相同的事情(一个在窗体顶部,另一个在窗体底部),触发器事件名称都是“单击” 加载页面后,我立即收到错误“在UpdatePanel'updIncidentDetails'中找不到触发器ID为'btnSaveChangesBtm'的控件”。此错误没有任何意义,因为我查看并发现了控件'btnSaveChangesBtm',与day一样清晰 下面是

我有一个带有UpdatePanel的ASP.NET表单。我为UpdatePanel定义了两个AsyncPostBackTriggers;两者都是按钮,它们都做相同的事情(一个在窗体顶部,另一个在窗体底部),触发器事件名称都是“单击”

加载页面后,我立即收到错误“在UpdatePanel'updIncidentDetails'中找不到触发器ID为'btnSaveChangesBtm'的控件”。此错误没有任何意义,因为我查看并发现了控件'btnSaveChangesBtm',与day一样清晰

下面是标记的相关片段,以防有人看到我缺少的东西。我在这件事上不知所措

<asp:UpdatePanel ID="updIncidentDetails" runat="server">
  <ContentTemplate>
    <div id="pnlIncidentDetails" runat="server" class="formPanel">
      <h2>Incident Details</h2>
      <div id="saveButton" style="float: right; margin-right: 100px; display: none;">
        <asp:Button ID="btnSaveChanges" runat="server" OnClientClick="return valEditedFields();" OnClick="btnSubmit_Click" Text="Save Changes" />
        <asp:Button ID="btnCancel" runat="server" OnClientClick="return hideEditFields(true);" OnClick="btnCancel_Click" Text="Cancel Changes" />
      </div>

      ...

      <div id="saveButtonBtm" style="float: right; display: none;">
        <br />
        <asp:Button ID="btnSaveChangesBtm" runat="server" OnClientClick="return valEditedFields();" OnClick="btnSubmit_Click" Text="Save Changes" />
        <asp:Button ID="btnCancelBtm" runat="server" OnClientClick="return hideEditFields(true);" OnClick="btnCancel_Click" Text="Cancel Changes" />
        <br />
      </div>
    </div>
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSaveChanges" EventName="Click" />
    <asp:AsyncPostBackTrigger ControlID="btnSaveChangesBtm" EventName="Click" />
  </Triggers>
</asp:UpdatePanel>

事件详情
...


我最初认为这是因为我在“saveButtonBtm”上设置了“display:none”,但后来我意识到在顶部的一个(“saveButton”)上也设置了相同的内容,所以我认为不是这样。还有其他建议吗

以下是错误的图像:

问题是因为按钮位于手风琴面板内——我想这使得UpdatePanel无法找到它们。我把它们移到了面板外面,一切正常。

我复制了你的代码并将其放入VS2012上的一个web应用程序中,为两个按钮创建了空事件处理程序,并在IE10、Firefox和Chrome上毫无问题地运行了它。你的事件处理程序在做什么?你能把代码贴在后面吗?应该可以。恐怕问题应该出在别的地方。这给了我加载页面时的错误;我甚至不能运行事件处理程序(顺便说一句,两个保存按钮的处理程序是相同的,应该可以工作,对吧?),我将添加一个屏幕抓取错误,以便您可以看到它。这是否与窗体底部的按钮位于AccordionPanel控件内这一事实有关(哪个在UpdatePanel中)?注释掉并查看页面是否运行?