我有一个自定义控件,可以显示基于某些配置文档的视图。我们一直将sortColumn存储在sessionScope变量中,以便用户在离开并返回Xpage时可以保留排序。不幸的是,如果他们离开具有相同自定义控件的另一个Xpage,但是视图没有相同名称的列,则会引发错误。
所以,我认为我可以检查视图的columnNames,这样我们就不会尝试使用不存在的sortColumn。在应用sortColumn的同时,我无法获得视图数据源的句柄。
<xp:dominoView var="inputView" sortOrder="#javascript:sessionScope.sortedColumnDirection}">
<xp:this.sortColumn><![CDATA[#{javascript:var nameVector:java.util.Vector = inputView.getColumnNames();
var nameArray = sessionScope.curDynamicViewSettings.columnTitles;
if ( @IsMember(viewScope.sortedColumnName,nameArray)) {
return viewScope.sortedColumnName;
}
return;}]]>
</xp:this.sortColumn>
</xp:dominoView>