2014-02-24 3 views
0

시간이 초과되면 작업 버튼을 클릭하는 타이머 스크립트를 실행하는 응용 프로그램이 있습니다. 작업 버튼은 표시 : 없음으로 숨겨집니다. 액션 버튼에서 onClick 이벤트에서 panelButtonBar에 대한 부분 새로 고침을 수행합니다. onClick 이벤트가 수행하는 것의 일부를 제외하면이 모든 것이 훌륭하게 작동합니다. 이는 문서의 조건에 따라 viewScope 변수를 설정합니다. viewScope 변수는 vsIsLocked이며 true 또는 false 일 수 있습니다. 값이 true이면 panelButtonBar를 새로 고치지 않습니다. 내가 알고 행동 단추의 OnClick입니다 코드에서 dBar.info 문을 넣어XPage에서 조건부로 부분 새로 고침

(viewScope.get("vsIsLocked")) ? "dummyField" : "panelButtonBar" 

: 나는 부분 새로 고침의 정의에 다음 dummyField라고 아무것도하지 않는 필드를 생성 및 추가 가 일정에 따라 실행되고 있고 vsIsLocked의 값이 true에서 false로 변경되었지만 panelButtonBar가 새로 고쳐지지 않는다는 것도 알고 있습니다. 조건문을 꺼내고 panelButtonBar의 부분 새로 고침을 새로 고치면 조건부 부분 새로 고치기가 작동하지 않는다고 말한 것입니다. 나는 내 j가 맞다고 믿는다. 시도 :

(viewScope.get("vsIsLocked")) ? "" : "panelButtonBar" 

그러나 부분 새로 고침은 전체 새로 고침으로 실행되는 것 같습니다.

+0

더 자세히 설명하기 위해 jsfiddle을 사용할 수 있습니까? 한 빌 F.에서 다른 인사로 인사드립니다. –

+0

@BillF. 다른 사람에게 - 당신이 의미하는 것이 확실하지 않습니다. 모든 것은 조건부 새로 고침을위한 코드를 작동합니다. 새로 고칠 요소 선택 대화 상자에서 Element ID를 Secfify로 선택한 다음 panelButtonBar를 입력하고 작은 다이아몬드를 선택하고 위의 js를 입력하십시오. 그것은 꽤 간단합니다. vsIsLocked는 true 또는 false 인 경우 false입니다. false 인 경우 실제로 아무것도 수행하지 않는 dummyField를 새로 고칩니다. refreshButtonBar. 항상 panelButtonBar에서 부분 새로 고침을 수행하도록 할 수는 있지만 사실 일 때 그렇게 할 이유가 없습니다. –

+0

그는 순수한 클라이언트 측 웹 코드를 테스트하고 공유하는 좋은 방법 인 http://jsfiddle.net/을 언급하고 있습니다. 이 특정 문제는 서버 측 동작이므로이 경우에는 적용 할 수 없지만 잘 알고 있어야합니다. –

답변

0

"때 새로 고침"에 약간의 걸림돌이 될 수 있습니다. (viewScope.get("vsIsLocked")) ? "dummyField" : "panelButtonBar"은 숨겨진 버튼에 앉아 버튼이 새로 고침되면 계산됩니다. 그러나 버튼을 "누를"때 dummyField 또는 panelButtonBar를 새로 고치지 만 버튼 자체는 새로 고치지 않습니다. 그래서 당신의 상태는 평가받지 못합니다.

panelButtonBar에 숨겨진 버튼을 넣거나 새로 고침 할 때 두 가지가 모두 포함될 수 있습니다.

업데이트는 하나 개의 버튼 당신의 새로 고침 목표에 대한 각 하드 유선이 렌더링 된 속성을 계산해야하므로
target 속성 만, 페이지로드 평가된다. 따라서 새로 고침 할 때마다 브라우저에 다른 버튼이 전송됩니다. 대상에 매개 변수 배열이있는 사용자 지정 컨트롤을 사용할 수 있으므로 UI에 하나의 컨트롤 만 사용할 수 있습니다.

+0

단추가 렌더링되었지만 표시로 숨김 : 없음.나는 "렌더링 된"것이 숨겨진 것으로 생각하지 않는다. 나는 그것을 "존재하지 않는다"고 생각한다. 나는 "디스플레이 : none"을 사용하는 사용자로부터 "숨겨야"하는 것을 원한다면, "렌더링 된"것이 항상 같아야한다고 생각하지 않는다. 숨겨진. 방정식의 다른 부분은 부분적 새로 고침에 명시 적으로 "panelButtonBar"를 넣으면 정확히 수행된다는 것입니다. 내가 멈추려 고하는 이슈는 부분적인 리프레쉬 다. –

+0

부분 새로 고침에 수식이있는 경우에도 "클릭"이벤트가 일정에 따라 트리거되므로 부분 새로 고침 수식의 문제와 관련된 문제가 완전히 해결됩니다. 사용자가 문서를 열었을 때 (즉 문서가 잠긴 상태) vsIsLocked가 true 인 테스트 상황을 설정 한 다음 문서에 대한 잠금을 해제했습니다. 다음에 click 이벤트가 실행되면 vsIsLocked는 false이지만 부분 새로 고침은 panelButtonBar를 새로 고치지 않았습니다. –

+0

부분 새로 고침에서 수식을 제거하고 "panelButtonBar"로 바꾸십시오. 위의 세차를 반복하십시오. 내가 원하는대로 작동하지만, "n"초마다 불필요한 부분 새로 고침을 수행합니다. 불필요한 오버 헤드를 제거하고 싶을뿐입니다. –