这段代码确实为我提供了我想要的comboBox值,但我想知道是否有办法以编程方式获取viewPanel中的viewColumn ID,viewColumnHeader ID和列数。 viewPanel使用JDBCQuery作为数据源。
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具有特定的命名结构,这将很好地摆脱。
答案 0 :(得分: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
}