0
버튼의 CSJS onclick 이벤트 내에 일부 SSJS가 있습니다. 이 SSJS가 페이지로드 중에 실행되는 것을 막을 수있는 방법이 있습니까?xpages - CSJS에서 페이지로드시 SSJS를 방지합니다.
감사
버튼의 CSJS onclick 이벤트 내에 일부 SSJS가 있습니다. 이 SSJS가 페이지로드 중에 실행되는 것을 막을 수있는 방법이 있습니까?xpages - CSJS에서 페이지로드시 SSJS를 방지합니다.
감사
이는 facesContext.getRenderResponse()을 확인하여 수행 할 수 있습니다. 이면 페이지가 다시로드되고, 그렇지 않으면 false이됩니다. 플래그가 올바르게 설정되지 않았지만 페이지로드 여부를 쉽게 확인할 수 있습니다. 여기
는 예 XPage입니다 : 당신이 XPage를 열고 버튼을 클릭하면<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:button value="Reload CSJS" id="buttonReloadCSJS">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.script>
<![CDATA[#{javascript:
facesContext.getRenderResponse()?"alert('NotOnLoad');":"alert('OnLoad')";
}]]>
</xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>
이 페이지가 다시로드되고 다른 CSJS 코드를가집니다.
는 편집 : 여기
는 버튼을 부분적으로 새로 고친 경우에만 코드를 계산하는 또 다른 방법입니다 :
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:div id="refreshMe">
<xp:button value="Reload CSJS" id="buttonReloadCSJS">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="refreshMe">
<xp:this.script>
<![CDATA[#{javascript:
var ajax = new com.ibm.xsp.ajax.AjaxUtil();
if(ajax.isAjaxPartialRefresh(facesContext) == true){
return "alert('Refreshed')";
}
}]]>
</xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:div>
</xp:view>
당신은 아마 일반적인 실수에 직면 해 - CSJS은 SSJS 부품을 포함 - 그것은 때 페이지 실행 렌더링합니다. 이러한 이벤트에는 "활성"스크립트를 사용하지 않아야합니다. 또한, 일부 소스 샘플은 귀하의 질문에 도움이 될 것입니다. –