저는 UpdatePanel이있는 ASP.NET 폼이 있습니다. UpdatePanel에 대해 정의 된 두 개의 AsyncPostBackTriggers가 있습니다. 두 가지 모두 버튼입니다. 둘 다 동일한 것을 수행합니다 (하나는 양식 상단에, 다른 하나는 양식의 맨 아래에 있음). 트리거 이벤트 이름은 둘 다에 대해 "클릭"입니다.ASP.NET에서 내 컨트롤이 존재하지 않는다고 생각하는 이유는 무엇입니까?
페이지를로드하자마자 "ID가 'btnSaveChangesBtm'인 컨트롤을 UpdatePanel 'updIncidentDetails'의 트리거에서 찾을 수 없습니다."라는 오류 메시지가 나타납니다. 이 오류는 이해가되지 않습니다. 왜냐하면 저는 보았고 '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"). 그렇다고 생각하지 않습니다. 다른 제안? - 나는 그게 그렇게 UpdatePanel이 그들을 찾을 수 없습니다 만든 것 같아요
코드를 복사하여 VS2012의 웹 응용 프로그램에 넣었습니다. 두 버튼에 대한 빈 이벤트 처리기를 만들고 IE10, Firefox 및 Chrome에서 문제없이 실행했습니다. 이벤트 핸들러가 아무 것도하지 않습니까? 코드 숨김을 게시 할 수 있습니까? –
그게 효과가있다. 나는 그 문제가 다른 곳이어야한다고 두려워. –
페이지로드시 오류가 발생합니다. 이벤트 처리기를 실행할 수있는 시점까지 도달하지 못했습니다 (두 저장 단추 모두 동일한 이벤트 처리기를 실행할 수 있습니다). 오류의 화면 캡처를 추가합니다 그래서 당신은 그것을 볼 수 있습니다. – timbck2