마스터 페이지 템플릿을 사용하는 ASP.Net 웹 페이지가 있습니다.중첩 된 ASP.Net 웹 양식 + nyromodal : 모달을 닫은 후에 포스트 백이 사라집니다.
페이지에는 일부 기본 AJAX 기능이있는 UpdatePanel이 있습니다 (DropDownList 값을 변경하면 UpdatePanel이 새로 고침됩니다). 이것은 모두 잘 작동합니다.
또한 모달 안에 nyromodal Modal을 팝업하는 링크가 있습니다. 또 다른 ASP.Net 웹 양식이로드됩니다.이 페이지 자체가 정적 페이지가 아닌 고유 한 기능을 갖기를 원하기 때문입니다. 그것의 "새로운 만들기"대화는 정확합니다. 따라서 새로운 레코드를 생성 한 다음 닫으면 레코드 목록 페이지 등으로 돌아갑니다.
다음 nyromodal 호출을 시작하기 위해 다음 jQuery 코드를 사용하고 있습니다. 이 코드에는 nyromodal을 ASP.Net과보다 호환되도록 만드는 다양한 조정 및 설정이 포함되어 있습니다. 이는 nyromodal과 ASP.Net (단원 : ASP.Net에서 벗어남)간에 직면하고 해결 한 다섯 번째 연속 비 호환성에 관한 내용이기 때문에
$(document).ready(function(){
$(function(){
$('.modal').live('click', function(evt){
$(this).nyroModalManual({'blocker':'#aspnetForm',minWidth:640,minHeight:400,endShowContent:function(elt, settings) { $('input:text:first', elt.content).focus(); }});
evt.preventDefault();
});
});
});
이 코드는 ASP.Net과 nyromodal이 함께 작동하는 몇 가지 다른 문제를 해결할 때 아주 잘 작동합니다 (Brian 감사). 그것도 블로커를 사용하여 : #aspnetForm 비트는 nyromodal이 aspnetForm이라는 ASP.Net의 주 포스트 백 양식 외부로 나가는 것을 막습니다. 이것은 almost identical problem을 해결하기위한 것입니다.
하지만 ..
내 모달로로드하고있어 웹 페이지는 또한 닷넷 웹 양식입니다. 그래서 그것은 또한 내장 된 포스트 백 aspnetForm을 가지고 있습니다. 따라서 모달이 나타나고 FireBug를 사용하여 DOM 구조를 확인하면 실제로 두 개의 ASP.Net 양식 (중첩 된 양식)이 있습니다. 그리고 nyromodal은 본질적으로 단지 div (또는 몇 개의 div)이기 때문에 양식 태그는 본질적으로 중첩됩니다.
그래서 나는 이것이 큰 일을 망쳐 놓고 있다고 생각합니다. 실제로 IE7이 완전히 파손되었습니다 (치명적인 예외). IE7 + FireFox : 대화 상자를 닫을 때 주 웹 양식이 다시 게시되지 않습니다. 나는 그것이 잠시 전에 있었던 2 개의 form 태그에 의해 매우 혼란 스러웠다 고 생각한다.
nyromodal을 사용하여 ASP.Net 웹 양식을 모달의 내용으로 열 수 있다는 것은 매우 간단한 요구 사항입니다. 필자는 절름발이이기 때문에 모든 페이지에 필수 "양식"태그를 넣는 ASP.Net에 대한 책임이 있습니다. 내가 PHP를 사용했다면, 나는이 모든 문제를 경험하지 못했지만, ASP.Bloat를 작업 목적으로 사용하지 못했습니다.
어떤 생각이나 통찰력이 크게 감사드립니다! :)
저는 솔직히 모달 안에 다른 웹 양식을로드하는 아이디어를 버려야 할 것이며 원래 모체 페이지의 div에 "모달 페이지"를 옮겨야 할 것이라고 생각합니다. 그런 다음 div 내용을 표시하기 위해 nyromodal을 얻으십시오. 그러면 논리 뒤에 자체 코드가 생깁니다. 어떤 생각이 들었습니까? – Aaron