为什么ASP.NET认为我的控件不存在?

时间:2013-06-28 20:34:01

标签: asp.net updatepanel

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

一旦我加载页面,我就会在UpdatePanel'ligIncidentDetails'中找到错误“无法找到带有ID'btnSaveChangesBtm的控件'的触发器。”这个错误没有任何意义,因为我看起来并且控制'btnSaveChangesBtm',清楚如此。

以下是标记的相关摘要,以防有人看到我遗漏的内容。我对此感到茫然。

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

我首先想到的是因为我有“display:none;”设置在“saveButtonBtm”&lt; div&gt;上,但后来我意识到同样的东西设置在顶部的那个(“saveButton”),所以我不认为就是这样。还有其他建议吗?

以下是错误的图片: Trigger Control error message

1 个答案:

答案 0 :(得分:0)

问题是因为按钮位于AccordionPanel内部 - 我想这使得UpdatePanel无法找到它们。我将它们移到Panel外面,一切正常。