2012-07-26 3 views
1

현재 XPages에 대한 기존의 전통적인 도미노 웹 응용 프로그램을 다시 디자인하는 프로젝트에 있습니다. 이 응용 프로그램에는 도우미 대화 상자가 많은 웹 양식이 포함되어 있습니다. 또한 알림 및 확인 및 확인은 대화 상자를 통해 수행됩니다.XPages 템플릿 대화 상자

나는 각 대화 상자에 대한 사용자 지정 컨트롤을 만들고이를 Xpage에 추가하고 프로그램을 호출 할 수 있음을 알고 있습니다. 심지어 각 대화 상자에 패싯이있는 동적 콘텐트 컨트롤을 사용하여 동적으로로드 할 수있었습니다. 대화 상자 cc에는 onClientLoad에 show()가 포함되어 있습니다. 동적 내용 컨트롤의 내용을 전환하여 대화 상자를 쉽게 열 수 있습니다.

그러나 이러한 모든 사용자 지정 컨트롤을 XPages에 추가하면 비효율적이며 실제로 디자인 탭이 복잡해집니다. 너 뭐야?

대화 상자의 내용을 동적으로 설정하는 것을 선호합니다 (전통적인 도미노처럼 각 대화 상자의 양식을 정의 할 수 있음). 그게 가능하니? 그렇지 않으면 계산 된 하위 폼을 사용하는 것처럼 동적으로 사용자 지정 컨트롤을로드 할 수 있습니까?

또한 확인 상자에는 각 확인마다 다른 코드를 실행하기 위해 확인 버튼이 필요합니다. 이를 구현하는 가장 좋은 방법은 무엇입니까? "dlgConfirm"사용자 정의 컨트롤에 사용자 정의 매개 변수 "functionOnOk"을 추가하고 제출 버튼에서이를 평가하십시오.


PS : 나는 아직도 dojoType = dijit.DialogBox와 패널을 사용하고 있지만, 대화 상자를 extlib에 그 변경됩니다. 확인 및 messageboxes 들어 이제 코드에서 마크 업 함께 클라이언트 쪽 dijit.Dialogs 사용하고 있지만 XPages뿐만 아니라 마크 업 싶습니다.

+0

dijit.dialog 대신 extlib 대화 상자 컨트롤을 사용하면 위에서 설명한 동적 내용 컨트롤 사용이 중단됩니다. 그러나 사전로드 옵션을 사용하면 콘텐츠가 표시 될 때만로드되므로 필요가 없습니다. – BvG013

답변

0

Dojo가 대화 상자에서 SSJS를 실행하지 못하도록 대화 상자를 이동하기 때문에 dijit.Dialog의 패널에 문제가 있음을 알고 있습니다. 나는 dijit.DialogBox에도 문제가 있는지 모르지만 그것이 될 수 있다고 생각합니다. Jeremy Hodge는 해결 방법에 대해 몇 가지 코드를 작성했습니다.

그러나 확장 라이브러리 컨트롤을 사용하는 것이 좋습니다. 클라이언트 측 dijit.Dialog는 코드 작성이 훨씬 어려우며 SSJS 상호 작용을 허용하지 않습니다. Extension Library 컨트롤에서 사용할 수없는 Dojo 속성을 인식하지 못했으며 Extension Library 컨트롤을 사용하여 CSJS 또는 SSJS에서 대화 상자를 열거 나 닫을 수 있습니다. 또한 닫을 때 새로 고칠 영역을 지정할 수 있습니다.

속성에 관해서는 프리로드이 순전히 보여주기 쉽습니다. refreshOnShow 속성을 사용하고 있습니까? 이렇게하면 대화 상자가 표시 될 때마다 URL이나 내용이 새로 고쳐집니다. 대화 상자의 확장 라이브러리 장에는 모든 속성을 다루는 테이블이 있습니다. 다른 XPage 또는 다른 웹 페이지를 가리 키도록 URL을 설정할 수 있습니다. 이렇게하면 동적 콘텐츠 컨트롤을 사용하여 매개 변수를 전달하여 표시 할 콘텐츠를 전환 할 수 있습니다.

[확인] 단추 뒤에있는 코드의 경우 확장 라이브러리 대화 상자를 사용하면 대화 상자 밖에있는 모든 기능을 사용할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 지금 대부분의 대화 상자에서 ExtLib 대화 상자를 사용하고 있습니다. 대화 상자에 다른 XPage를로드 할 수있는 href 속성을 살펴 보았지만 작동하지 않는 것 같습니다. 각 대화 상자에 대한 사용자 정의 컨트롤을 만들고 내 XPage를 복잡하게 만들 것입니다. – BvG013

관련 문제