을해야
var renderfunc = viewScope.renderFunctions[funcname];
var result = renderfunc(rawdata);
return result;
: 그런 다음 렌더링 기능과 같이 사용 무언가 내 이름을 넘겨. 내 버튼의 이벤트 핸들러는 다음과 같이 보입니다 :
<property>
<property-name>action</property-name>
<property-class>javax.faces.el.MethodBinding</property-class>
<property-extension>
<designer-extension>
<editor>com.ibm.workplace.designer.ide.xfaces.internal.editors.MethodBindingEditor</editor>
</designer-extension>
</property-extension>
<description>ssjs that action button must perform</description>
</property>
클래스와 편집자가 위와 같이되어 있는지 확인합니다 : 내 사용자 지정 컨트롤에 대한
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="pnlContainer"
action="#{javascript:if (compositeData.actionButton.action) if (!compositeData.actionButton.action.call()) return;}">
</xp:eventHandler>
내가 속성을 설정했습니다.
그런 다음 사용자 지정 컨트롤을 포함하는 xpage의 속성은 SSJS를 포함
action="#{javascript:removeSelected}"
이것은 SSJS 스크립트 라이브러리에있는 함수입니다. 열쇠는 여기에 괄호의 매개 변수를 제공하지 않는 (!)
SSJS 기능은 다음과 같습니다. (
function removeSelected(){
var accessList = sessionScope.get("removalList");
var nsf_committee = datasources["COM1_DB_FILEPATH"];
var db:NotesDatabase = session.getDatabase(session.getServerName(), nsf_committee);
for (var i = 0; i < accessList.length; i++) {
var doc:NotesDocument = db.getDocumentByUNID(accessList[i]);
if (null != doc){
doc.remove(true);
accessList.remove(accessList[i]);
}
}
}
을 여기에 내가 데이터베이스에서 문서를 제거 유니드 아이디의이에 상주 배열리스트는 반복 컨트롤의 각 행에 대한 체크 박스 그룹을 통해 설정됩니다.)
개체 유형의 매개 변수에서 함수 자체를 넘길 수도 있습니다 – stwissel