웹 브라우저에서 노트 뷰를 다시 사용하고 싶습니다. 따라서 HTML로 표현 된 노트 뷰 (응답 문서 계층 구조)가 목록 항목 (li)과 함께 정렬되지 않은 목록 (ul)으로 필요합니다.메모보기를 html 중첩 목록으로 변환하려면 어떻게해야합니까?
이 목록을 계산하는 데 사용해야하는 SSJS 코드는 무엇입니까?
웹 브라우저에서 노트 뷰를 다시 사용하고 싶습니다. 따라서 HTML로 표현 된 노트 뷰 (응답 문서 계층 구조)가 목록 항목 (li)과 함께 정렬되지 않은 목록 (ul)으로 필요합니다.메모보기를 html 중첩 목록으로 변환하려면 어떻게해야합니까?
이 목록을 계산하는 데 사용해야하는 SSJS 코드는 무엇입니까?
없음.
보기를 편집 할 수 있으면보기를 HTML로 설정하고 시작 부분에 한 열을 추가하고 목록 태그로 끝납니다. 클라이언트에서 숨겨 지도록 설정하십시오.
또는 반복 컨트롤에 바인드하고 Li 태그 내부에 계산 된 텍스트를 뷰 열에 바인딩합니다. 두 경우 모두 SsJS가 없습니다.
옵션 1은 바람직하지 않습니다; xpage에 뷰 데이터를 사용하고 싶습니다. 옵션 2 나는 조용히 잘 이해하지 못합니다. 중첩 된 목록이 실제 분류 된 구조를 따르지 않으면 응답 스레드에 대한 응답이 있음을 의미합니다 ... – Malin
NotesViewEntry.getPosition (Char separator)은 계층 적 출력을 제공합니다. 예를 들어 구분 기호가 "."인 경우 세 번째 최상위 항목의 경우 3을, 세 번째 최상위 항목의 다섯 번째 하위 항목의 경우 3.5를, 세 번째 최상위 항목의 다섯 번째 하위 항목의 일곱 번째 하위 항목에 대해 3.5.7을 제공합니다.
스테판의 두 번째 옵션에 대해 자세히 설명하기 위해 반복 제어는 검색하는 데이터 구조에 신경을 쓰지 않습니다. 컬렉션에 대한 핸들입니다. 각 "행"은 해당 컬렉션에서 하나의 요소입니다. 따라서 myView.getAllEntries() 인 콜렉션을 가리키면 각 항목은 NotesViewEntry입니다.
들여 쓰기를 사용하려면 둘을 결합하고 계층 구조의 수준을 유지해야합니다. 또는 NotesViewEntry에서 자식이 있는지 확인할 수 있으므로 다른 li을 만들거나 다른 ul을 시작할 필요가 있습니다. 당신이 더 정교한 얻으려면
또는, 내가 XPages 도움말 응용 프로그램의 도장 트리 그리드 탐색 http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPages%20Help%20Application
없는 가장 아름다운 코드를 생성 할 뷰를 탐색하는 방법을 살펴 봅니다. 나는 그것이 효과가 있기를 바란다.
function getList() {
var nav:NotesViewNavigator=database.getView("notesview").createViewNav();
var entry:NotesViewEntry=nav.getFirst();
if (entry!=null){
var countLevel:Integer = 0;
var curLevel:Integer;
var list="";
while (entry != null) {
var edoc:NotesDocument = entry.getDocument();
entryValue = entry.getColumnValues().elementAt(1).toString();
var col:NotesDocumentCollection = edoc.getResponses();
var gotResponse:String;
if (col.getCount()>0){
gotResponse ="1";
}
else{
gotResponse ="0";
}
curLevel = entry.getColumnIndentLevel();
if (curLevel<countLevel){
//no responses & no siblings
var difLevel=countLevel-curLevel;
list=list + "<li>"+entryValue+ "</li>"
var closure="";
for (var i=0;i<(difLevel);i++) {
closure=closure+"</ul></li>"
}
list=list+closure;
countLevel=curLevel;
}
if (curLevel==countLevel){
if(gotResponse=="1"){
//got responses;handle them first
list=list+"<li>";
list=list+entryValue;
list=list+"<ul>";
countLevel=curLevel+1;
}
else{
//must be sibling
list=list + "<li>"+entryValue+ "</li>"
}
}
var tmpentry:NotesViewEntry=nav.getNext(entry);
entry.recycle();
entry=tmpentry;
}
//final closure, last entry could be response doc
var closure = ""
for (var i = 0; i < (countLevel); i++) {
closure = closure + "</ul></li>";
}
list = list + closure;
return list;
} else {
return "No documents found";
}
}
무엇을 시도 했습니까? 기억은 그래서 내 직장 사이트는 아니지만, 자리를 비우는 사람 – stwissel