2013-12-11 3 views
1

이 코드는 내 comboBox에서 원하는 값을 제공하지만 viewCanumn ID, viewColumnHeader ID 및 viewPanel의 열 수를 프로그래밍 방식으로 얻는 방법이 있는지 궁금합니다. viewPanel은 데이터 소스로 JDBCQuery를 사용합니다. ViewPanel 헤더를 프로그래밍 방식으로 얻는 방법

var itemList:java.util.Vector = new java.util.Vector; 
var colID = "viewColumn"; //default id assigned 
var colHeaderID = "viewColumnHeader"; //default id assigned 
var end = 10; //max # of viewPanel columns 
itemList.add("Select Column"); 
for(x=1;x<end;x++) { 
    try { 
     if(getComponent(colID + x) == null) { 
      throw ("Only " + (x-1) + " columns in ViewPanel"); 
     x=end; 
     } else { 
     var disColID = getComponent(colID + x).getColumnName(); 
     } 
     var disColHeaderID = getComponent(colHeaderID + x).getValue(); 
     itemList.add(disColHeaderID + "|" + disColID); 
    } catch (e) { 
     dBar.info(e.toString()); 
    } 
} 

itemList 

현재의 방법

분명히에만 9 열 제한 및 viewColumn ID를 보장하고 viewColumnHeader ID는 멀리 얻을 좋은 것 특정 명명 구조를 가지고있다.

답변

2

viewPanelObj.getChildren()을 사용하여보기 패널의 하위 구성 요소를 가져 와서보기 패널의 모든 열에 액세스 할 수 있습니다. 열 머리글은보기 열의 일부이며보기 열의 핸들을 얻은 후 viewColumnObj.getHeader()을 사용하여 머리글에 액세스 할 수 있습니다. 그래서

샘플 SSJS 코드는 모든 뷰 열에 액세스하고보기 헤더는 다음과 같이 보일 것입니다 :

var viewPnl:com.ibm.xsp.component.xp.XspViewPanel = getComponent("viewPanel1"); 
var list:java.util.List = viewPnl.getChildren(); 
for (var i=0 ; i<list.size() ; i++) { 
    var viewCol:com.ibm.xsp.component.xp.XspViewColumn = list.get(i); 
    var viewHdr:com.ibm.xsp.component.xp.XspViewColumnHeader = viewCol.getHeader(); 

    // Perform required operations on objects of viewCol & viewHdr 
} 
+2

이 같은 사용할 수 있도록 그것은, getChildren'이 방법은 모든 구성 요소의 공유입니다 '것을 주목할 필요가 테이블의 모든 행 (및 행의 각 셀), 패널 또는 div의 내용 등을 반복하는 접근 방식. 페이지의 서버 측 구조를 검사하는이 기능은 흥미로운 의미를 지니고 있지만,'getChildren'에 의해 리턴 된'List'가 변경 가능하다고 생각할 때 추가적인 함의가 있습니다 ... –

관련 문제