2012-03-05 2 views
1

누군가가 jQuery .load (oracle apex url) 쿼리를 사용하는 데 도움을 줄 수 있기를 기대하지만 탐색 메뉴가있는 고정 배너를 보유하도록 기본 페이지를 설정할 수 있습니다. 메뉴 표시/숨기기.jQuery로드 문제 및 Oracle ApEx v4.1

:

이 메인 페이지 템플릿 내에서

, 나는 또한 메뉴 항목이 기본적으로 "메인 컨텐츠"이 오라클 정점 응용 프로그램 내에서 모든 페이지 설명 DIV, 즉로로드하는 선택했을 때 발생하는 몇 가지 jQuery 코드를 이 메인 페이지 내에서

$("#main-content").load(actualPageURL); 

, 또한 다음과 같은 HTML 설정으로, 내가 생성 한 "콘텐츠"지역이 있습니다

<div id="page-wrap"> 
    <div id="main-content"> 
    </div> 
</div> 

따라서 위와, 내가 기본적으로 달성하려고하는 것은입니다 이전처럼 iframe을 더 이상 사용하지 않는 방법 하지만 이제는 jQuery의 .load() 함수를 사용합니다.

메인 페이지의 메뉴에서 벗어나면 메뉴 항목 중 하나가 양식이있는 페이지로 이동하고 사용자가 현재 기본 "리디렉션"을 사용하는 "만들기"버튼을 누르면 모든 것이 잘 작동합니다 20 쪽 "버튼을 클릭했을 때의 동작으로, 더 이상 내 주 마스터 페이지 영역 내에 있지 않으므로 유지 관리하려는 모든 기능을 잃게됩니다.

그래서 지금부터는 내 메뉴에 액세스 할 수있는 수단과 상단에 고정 된 배너를 잃어 버렸습니다.

기본적으로 내 Oracle ApEx 응용 프로그램의 페이지 간 리디렉션 또는 다른 분기가 모두 <div id="main-content">을 통해 필터링되고 처리되며 항상 jQuery $("#main-content").load(actualPageURL) 기능을 사용해야합니다.

다시 말하지만, 필자는 Oracle ApEx 애플리케이션의 모든 페이지가 기본 컨텐츠 div를 통과해야합니다.

정말 어떻게해야 할 지 모르겠지만 최선의 접근 방법은 무엇인지, 실제로는 실제로 할 수 있는지 여부는 확실하지 않습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

답변

1

2 가지를 잡아야한다고 생각합니다. 표준 리디렉션은 'javascript : redirect()'로 HTML에 표시됩니다. 이 리디렉션 기능이 apex_4_1.js에 정의되어, 간단하게 오버라이드 (override) :

function redirect(where){ 
    alert("im overriding the original redirect! It would've brought me to "+where); 
}; 

분기입니다 더 짜증나 있습니다. 지금 당장 생각해 볼 수있는 가장 좋은 점은 apex 버튼을 통해 페이지를 제출할 때 발생하는 apex 이벤트 "apexbeforepagesubmit"을 사용하는 것입니다. 당신이에 동적 동작을 정의 할 수 있습니다, 프레임 워크 이벤트에서 발견, 또는 이벤트를 직접 결합 할 수 있습니다 분명히

$(document).bind("apexbeforepagesubmit", function(event, pRequest){ 
    alert("before submit:"+pRequest); 
}); 

당신이 리디렉션 URL을 사용할 수 없습니다 때문에 여기에 몇 가지 분석을 수행해야합니다 (그리고 나는 그것이 서버 측 방향 전환이기 때문에 당신이 그것을 얻을 수있을 것이라고 생각하지 않는다). 내가 생각할 수있는 몇 가지 표준 단추는 레코드 탐색 항목입니다 (이전, 다음). 또한 변경 사항 적용 (후 처리 브랜치는 동일한 페이지에서 성공 메시지 사용). 어쩌면 Target TypePage in this Application에서 URL으로 변경할 수 있습니까? 예를 들어 자바 스크립트 함수를 호출 할 수 있습니다. 아니면 1 페이지로 리디렉션 하시겠습니까?

왜이 전체 설정이 좋습니까? 고정 막대와 메뉴가 필요한 경우 사용자 정의 페이지 템플리트와 일부 CSS magix가없는 이유는 무엇입니까? 불필요한 것 같습니다.

의견에 확장 : 나는 아주 작은 샘플 설정 한

->http://apex.oracle.com/pls/apex/f?p=26186:1 를 응용 프로그램이 테마 (24)을 기반으로 새로운 테마 감소에 대한 내 의견 덕분에 훨씬 더 있습니다 레이아웃을위한 테이블 사용. 내가 한 모든했다 :

  • 공유 구성 요소> 템플릿 : 나는 더 사이드와 표준 한 레벨 탭 페이지의 복사본을했다. 그런 다음 ID가인 일부 div를 html 헤더에있는 지역 위치 3 및 4 주변에 배치하고 본문에 배치합니다. 또한 일부 (당신이 과정의 할 수있는 별도의 파일에 자바 스크립트를 넣어 그것을 포함) 바닥 글에 자바 스크립트
  • 공유 구성 요소> CSS 파일을 포함 : 난 내 div에 대한
  • 페이지를 일부 스타일을 제공하는 CSS 파일을 업로드 0 : 여기서 위치 3과 4에 2 개의 영역을 만들고 로그인 페이지에 표시되지 않도록 조건을 설정합니다. 페이지 0의 영역은 기본적으로 해당 응용 프로그램의 각 페이지에 표시됩니다.
  • 페이지 1 : 페이지 템플릿 용 물론 물론 내 사용자 지정 템플릿을 선택했습니다. 더 이상 편집 할 필요가 없으며 템플릿이 모든 작업을 처리합니다. 그래서 왼쪽과 최상위 바에 화려하고 흐릿하게 떠 다니는 메뉴가 모두 표준으로 제공됩니다. 그것은 원시적이고 모든 것이었지만 모든 것은 simle 편집, CSS 및 자바 스크립트 핀치였습니다. 당신은 그것에 익숙해야합니다.

이제 각 페이지를 만들면 같은 모양이됩니다. 페이지 1에서 다른 페이지로의 분기는 물론 리다이렉트를 할 것입니다. 그러나 페이지 0의 영역은 각 페이지에 표시되기 때문에 어쨌든 템플릿처럼 보일 것입니다. 이것은 당신이 원하는 것과 일치하는 훨씬 더 많은 것으로 보이며, 전체 아약스 경로보다 훨씬 적은 작업입니다.

내가 작성한 작업은 간단합니다. 먼저 기존 템플릿을 쉽게 복사 한 후 편집하여 두 개의 region 위치를 div에 넣고 div에 ID를 부여했습니다. 그런 다음 페이지를 만들고 새 템플릿을 할당했습니다. 각 위치에 대해 두 개의 영역을 만들었습니다. 그럼 내가 좀 더 많은 divs 및 요소를 만드는 주위에 mucking 시작했다. 페이지 헤더에 스타일 태그를 추가하고 거기에 js도 넣습니다. 내가 따라갈 때 필요한 템플릿을 포함하도록 템플릿을 편집했습니다 (일부 div, 클래스, ...). 마지막으로 나는 css를 파일로 옮기고 그것을 템플릿에 포함시켰다. js와 동일합니다. 페이지 0에 영역을 복사하고 페이지 1에서 삭제했습니다. 템플릿이 완료되었습니다. 자유롭게 살펴보고 새 페이지를 만드는 등 자유롭게 사용해보십시오. 물론 작은 데모 일뿐입니다. 스타일 ;-)

  • Apex.oracle.com 나를 쏘지 마세요 ->
  • 작업 공간을 로그인 :
  • 자격 증명을 tompetrusbe : apex_demo/데모
  • 응용 프로그램 : 26186. 고정 메뉴와 메뉴 표시 줄
+0

은 정말로 귀하의 응답과 도움을 주시면 감사하겠습니다. 그러나 아마도 나는 잘못된 것으로 접근하고 있습니다. U pls는 마지막 단락, 즉 고정 막대 및 메뉴에 대한 CSS 매직이있는 사용자 정의 페이지 템플리트를 확장 할 수 있습니까? 내 인생을 힘들게 만드는 것처럼 들리네. 일부 방향/가능한 예를 기대합니다. 감사. – tonyf

+0

당신이하고자하는 것으로 보인다면, 단순히 메뉴가 있건 없건간에 각 페이지 상단에 동일한 바가있는 것입니다. 이것이 전부라면 페이지 템플릿을 조정하거나 만드는 것, 예를 들어 메뉴 막대를 항상 왼쪽 사이드 바에 넣는 것과 같이 0 페이지에 영역을 만드는 것 등이 있습니다. 리디렉션 해킹은 많은 어려움을 줄 것입니다. – Tom

+0

다시 감사합니다. 내가 달성하기 위해 노력하고 주요한 것은 모든 페이지에 고정 배너 및 메뉴 표시/숨기기 부동 메뉴가 있지만 한 페이지 전체를 inorder에서 app로 표시하여 대부분의 공간을 사용자에게 표시 할 수있게하는 것입니다. 가능한. 이게 당신의 개념과 관련이 있습니까? – tonyf