0

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

加载页面后,我立即收到错误消息“在 UpdatePanel 'updIncidentDetails' 中找不到触发器的 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>

我首先认为这是因为我有“显示:无;” 在“saveButtonBtm”<div> 上设置,但后来我意识到在顶部的那个(“saveButton”)上设置了相同的东西,所以我不认为就是这样。还有其他建议吗?

这是错误的图像: 触发控制错误信息

4

1 回答 1

0

问题是因为按钮位于 AccordionPanel 内部——我猜这是因为 UpdatePanel 找不到它们。我将它们移到了面板之外,一切正常。

于 2013-06-28T21:50:32.263 回答