2009-02-09 3 views
0

항목 목록을 표시하는 ASP.NET 3.5 웹 응용 프로그램을 작성하고 있습니다. 사용자가 항목을 선택할 때 세부 사항이있는 모달이 아닌 팝업을 표시 할 수 있기를 원합니다. 여러 세부 팝업을 동시에 표시 할 수 있기를 원합니다. (즉, 사용자가 항목을 클릭하여 세부 정보를 볼 수 있고 다른 항목을 클릭하여 다른 팝업을 얻을 수 있습니다.) 현재 재발행 중 RegisterStartupScript를 호출하여 페이지에 "window.open (...)"스크립트를 다시 작성합니다 -renders. 문제는 물론 전체 페이지 다시 게시 및 새로 고침이 필요하다는 것입니다.XMLHttpRequest를 사용하여 팝업 표시

이것이 XMLHttpRequest 또는 AJAX에 대한 완벽한 사용 일지 모르지만 어떻게해야하는지 (또는이 작업을 수행하는 것이 가능하거나 똑똑한 것인지) 알지 못합니다. 누군가 내 길을 보여줄 수 있습니까?

AJAX Extensions가 설치되어 있지만 AJAX Control Toolkit을 사용하지 않는 것이 좋습니다.


편집 : 일부 설명 : 사용자가 항목을 선택하면 사용자 정의 이벤트가 발생합니다. 서버에서이 이벤트를 처리하고 일부 서버 측 로직을 사용하여 URL을 구성한 다음 RegisterStartupScript를 사용하여 "window.open (myUrl ...)"스크립트를 생성합니다. 그러나 이것을 수행하기 위해 전체 페이지를 게시하는 것이 비효율적 인 것처럼 보입니다. URL을 생성하고 전체 페이지를 왕복하지 않고 다시 보내는 간단한 서버 측 함수를 호출 할 수 있는지 알고 싶습니다.

답변

1

팝업 만들기는 AJAX와 관련이 거의없고 자바 스크립트와 더 관련이 있습니다. 여기에서 jQuery 대화 상자 라이브러리를 참조하십시오. 그런 다음 서버 더러운 일을 :) 할 jQuery의 AJAX API를 사용할 수

jQuery Dialog UI

-

빌 콘라드
Devtacular - Web Development Tutorials

+0

SIG는과 광고 갈 필요가 있지만 팝업 창을 만들기 좋은 대답 – annakata

+0

되어 있지 문제입니다. 내가 알고 싶은 것은 서버에서 사용자의 선택을 처리 한 다음 전체 페이지를 라운드 트립하지 않고 클라이언트에서 팝업을 만들 수 있는지 여부입니다. – Sisiutl

0

당신이 정말로 새 창을 열 필요가 있는가? 같은 창에서 현재 페이지 상단에 절대적으로 배치 된 DIV 또는 새 레이어를 여는 것은 요즘 대유행입니다.


편집 : 나는 그것이 팝업의 수를 제한 할 것이라고 생각하지 않는다

는, jQuery를 + jQuery를 UI와 같은 라이브러리를 사용하여 이러한 일을 수행 할 수있는 몇 가지 깔끔한 물건을 거기, 당신은 간단하게 만들 수 있습니다 이러한 DIV/레이어 중 상당수는 필요에 따라 이동식, 크기 조정 등을 할 수 있습니다. 실제 팝업이있는 경우에만 탭 패널/작업 표시 줄에 나타나지 않습니다.

예, 메인 페이지가 열리는 창의 크기로 제한됩니다. 그러나 대부분의 사람들이 최대화 된 브라우저 창에서 서핑하기 때문에 개인적으로 문제로 보지 않습니다.

일반적인 올드 스쿨의 구현은 의심 할 여지없이 훨씬 쉽지만 최종 사용자 팝업 차단기에서도 문제가됩니다. 그 문제는 @ 내 일이었고, 어떤 이유에서든 인증서 인증 과정에서 팝업을 만들 필요가있었습니다. 야후가 툴바의 새 버전을 릴리스하자마자 작업이 종료되었습니다.)

+0

한 번에 하나의 세부 정보 팝업으로 제한하고 기본 페이지의 테두리 내에서 팝업 위치를 제한하지 않습니까? – Sisiutl

0

DHTML Window widget을 사용할 수 있습니다. 모달 또는 비 모달 창을 표시하는 여러 가지 방법을 제공합니다. 또한 AJAX를 지원합니다.

dhtmlwindow를 사용하여 새 창을 열거 나 dhtmlmodal을 사용하여 새 모달 창을 열 수 있습니다.

물론 사용자 요구 사항에 맞게 편집 할 수 있습니다. 샘플 :

var insWindow = dhtmlmodal.open("insbox", "iframe","UserMaster.aspx?" + queryStr, "User Master", "width=425px,height=500,center=1,resize=0,scrolling=1", "recal");