我有一个带有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”),所以我不认为就是这样。还有其他建议吗?
以下是错误的图片:
答案 0 :(得分:0)
问题是因为按钮位于AccordionPanel内部 - 我想这使得UpdatePanel无法找到它们。我将它们移到Panel外面,一切正常。