2010-03-16 2 views
17

내 asp.net 페이지에서 modalpopupextender를 사용하여 하위 양식을 표시하고 싶습니다. 그러나 특정 조건에서만 보여야합니다. 이러한 조건은 자바 스크립트 코드로 결정됩니다.TargetControlID를 설정하지 않고도 ModalPopupExtender를 사용할 수 있습니까?

그래서 가장 중요한 것은 모달 팝업이 버튼 클릭에 표시되지 않아도된다는 것입니다. 그러나 TargetControlID 속성을 비워두면 다음 예외가 발생합니다.

'ModalPopupExtender1'의 TargetControlID가 유효하지 않습니다. 값은 null 또는 비워 둘 수 없습니다. 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.

예외 정보 : System.InvalidOperationException : 'ModalPopupExtender1'의 TargetControlID가 유효하지 입니다. 값은 null이거나 이 비어있을 수 없습니다.

숨겨진 버튼에 대한 TargetControlID가 있습니까? 아니면 더 적절한 옵션이 있습니까?

+0

주지 않는다 그런 식으로 당신은에 HiddenField 또는 목표 제어 ID로 Button 컨트롤을 사용했다. 내가 지금 – Deeptechtons

+1

@Deptechtons이기 때문에 targetcontrolId로 숨겨진 필드를 사용하는 데 어려움을 겪었습니까? HiddenField를 사용하지 마십시오. Button 컨트롤을 사용하고 Mike가 대답에 언급 한 것처럼 css (style = "display : none;")로 숨 깁니다. –

+0

당신은 완벽합니다. 버튼이 내 문제를 해결했습니다. 숨겨진 필드를 사용할 때 무엇이 ​​잘못 될지 궁금합니다. – Deeptechtons

답변

19

TargetControlID를 숨겨진 버튼 (표시 : 없음;)으로 설정하는 것이 내가 아는 한 최선의 방법입니다.

+0

먼저''을 추가하려고 시도했지만 작동하지 않았습니다. 이 대답에서 알 수 있듯이'는 키입니다. – user1325179

10

TargetControlID를 HiddenField 유형으로 설정할 수도 있습니다. 당신도 버튼

0

크레타에게 버튼이 필요하고 TargetControlId로 설정하고 style = "display:none"

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="Panel1" TargetControlID="btnPopup" 
     CancelControlID="btnClose" BackgroundCssClass="modalBackground" OkControlID="btnClose"></asp:ModalPopupExtender> 

<asp:Button ID="btnPopup" runat="server" Text="PopUp" style = "display:none" /> 
관련 문제