문제

사용자 컨트롤을 개발 중이고 jQuery 대화 상자 내부에 ASP.NET 버튼이 있지만 버튼을 누르면 아무 일도 일어나지 않으면 서서에서 버튼 클릭 이벤트를 호출하지 않습니다.

dlg.parent().appendTo(jQuery("form:first")); 

그러나 그것은 나도 도움이되지 않았다. ASP.NET USERCONTROL 내부에서 이것을 달성 할 수 있습니까? 또한 updatePanel 내부에서 대화 상자를 사용할 수 있는지 궁금합니다.

도움이 되었습니까?

해결책

버튼을 대화 상자 버튼으로 만들고 HiddenButton의 ID와 함께 페이지에 asp.net 버튼을 넣고 스타일로 div로 랩핑 할 수 있습니다. display:none;

따라서 버튼이 표시되지 않습니다. (표시되지 않아야합니다 = "false"버튼이 렌더링됩니다)

대화 상자 JavaScript에서 숨겨진 버튼을 클릭하는 효과가있는 버튼을 추가합니다.

  jQuery("#dialog").dialog({
        buttons: {
            'ButtonText': function() {
                //save the session
           __doPostBack('<%# HiddenButton.ClientID %>', '')
                jQuery(this).dialog('close');
            }
        }
    });

숨겨진 버튼에 ASP 클릭 핸들러 추가

<div style="display:none;">
    <asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>

대화 상자 버튼을 클릭하면 서버 사이드의 이벤트를 클릭합니다.

이것이 내가이 패턴을 항상 사용하는 데 도움이되기를 바랍니다.

다른 팁

ASP.NET과 양식 내에서 버튼을 찾을 수없는 것과 관련이 있다고 생각합니다.

jQuery에서 .live 이벤트 설정을 사용 - .live를 사용하여 대화 상자를 만들기 전에 이벤트를 바인딩하면 작동해야합니다.

jQuery의 라이브 이벤트

문서에서 이와 같은 것으로 끝납니다. 준비 기능 :


$("#btn").live("click", function(){
  // Do something
});


$("#dialog").dialog({
    ... 
}

나는 같은 문제가 있었다. 대화 상자에서 버튼을 꺼내고 CSS와 함께 숨기고 대화 상자의 닫기 이벤트에서 트리거되었습니다 (나중에 더 깨끗하게 할 것입니다. 그러나 이것은 최소한 문제를 설명합니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top