2013-02-22 99 views
0

我正在viewPanel上執行搜索查詢。當結果顯示在視圖中時,我只想遍歷返回的結果併爲每行創建一個名稱數組。我的Xpage視圖的第一列中有名稱字段。我曾嘗試以下:獲取搜索到的列值(已過濾)查看結果

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); 

上面的代碼返回名在後端註釋不管我的搜索查詢的看法。我意識到有getAllEntriesByKey(),但我的Xpages視圖是由搜索過濾,而不是列值。

有沒有一種方法可以在搜索後僅在我的視圖中顯示的結果上創建一個列值的數組?感謝您的任何提示。

回答

3

我想我已經想通了。發現了一些幫助在這裏:http://www.xsptalk.com/Public/Website/Blog.nsf/dx/04032011122915CCOGNE.htm

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); 
+0

有趣,我剛剛報道這個bug之前,我看到您的解決方案在這裏http://www-10.lotus.com/ldd/ndsebetaforum.nsf/topicThread.xsp?action = openDocument&documentId = 173B8E2826C07E6285257B1A0058EBEA – 2013-02-22 19:10:31

+0

我發現這個方法有問題。看起來好像getRowCount()在過濾視圖之前不會返回正確的行數:www-01.ibm.com/support/docview.wss?uid=swg1LO58916。它似乎只緩存文檔的前兩個「頁面」。 有沒有人知道一種方法來解決這個問題? – 2013-02-22 21:16:22

+0

當視圖未被過濾時,嘗試ViewPanelComponent.getEntryCount()。在你的情況下,temprows.getEntryCount() – 2013-02-23 08:36:08