Xpages 获取搜索(筛选)视图结果的列值

Xpages 获取搜索(筛选)视图结果的列值,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我正在查看面板上执行搜索查询。当结果显示在视图中时,我只想循环返回的结果,并为每一行构建一个名称数组。我的Xpage视图的第一列中有Name字段。我尝试了以下方法: var viewControl = getComponent("namesPanel"); var view = viewControl.getDataModel().getDominoViewData().getDataObject(); var entries = view.getAllEntries(); var entry

我正在查看面板上执行搜索查询。当结果显示在视图中时,我只想循环返回的结果,并为每一行构建一个名称数组。我的Xpage视图的第一列中有Name字段。我尝试了以下方法:

var viewControl = getComponent("namesPanel");
var view = viewControl.getDataModel().getDominoViewData().getDataObject();
var entries = view.getAllEntries();
var entry = entries.getFirstEntry();

var namesArray = [];
while(entry)
{
    namesArray.push(entry.getColumnValues().elementAt(0));
    entry = entries.getNextEntry();
}

getComponent("DisplayNames").setValue(namesArray);
无论我的搜索查询是什么,上面的代码都会在后端Notes视图中返回每个名称。我知道有getAllEntriesByKey(),但我的Xpages视图是通过搜索过滤的,而不是通过列值过滤的


是否有一种方法可以在搜索后仅在视图中显示的结果上构建列值数组?谢谢你的建议。

我想我已经弄明白了。在此处找到一些帮助:

var temprows=getComponent(“namesPanel”);
var modelData=temprows.getDataModel();
var namesArray=[];
对于(i=0;i
我想我已经弄明白了。在此处找到一些帮助:

var temprows=getComponent(“namesPanel”);
var modelData=temprows.getDataModel();
var namesArray=[];
对于(i=0;i
有趣的是,在我看到您的解决方案之前,我只是将此报告为一个bug。我发现此方法存在问题。似乎getRowCount()在过滤视图之前不会返回正确的行数:www-01.ibm.com/support/docview.wss?uid=swg1LO58916。它似乎只缓存文档的前两个“页面”。有人知道解决这个问题的方法吗?如果视图未被过滤,请尝试ViewPanelComponent.getEntryCount()。在您的例子中,temprows.getEntryCount()不允许我使用getEntryCount():Java类'com.ibm.xsp.component.xp.XspViewPanel'中的未知成员'getEntryCount'。有趣的是,在看到您的解决方案之前,我只是报告了一个错误。我发现了此方法的问题。似乎getRowCount()在过滤视图之前不会返回正确的行数:www-01.ibm.com/support/docview.wss?uid=swg1LO58916。它似乎只缓存文档的前两个“页面”。有人知道解决这个问题的方法吗?如果视图未被过滤,请尝试ViewPanelComponent.getEntryCount()。在您的情况下,temprows.getEntryCount()不允许我使用getEntryCount():Java类“com.ibm.xsp.component.xp.XspViewPanel”中的未知成员“getEntryCount”
var temprows = getComponent("namesPanel");
var modelData = temprows.getDataModel();
var namesArray = [];

for(i=0; i < modelData.getRowCount(); i++)
{
    modelData.setRowIndex(i);
    var xspViewEntry=modelData.getRowData();
    var document=xspViewEntry.getDocument();
    namesArray.push(document.getItemValueString("name"));
}

getComponent("DisplayNames").setValue(namesArray);