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

上記のコードは、検索クエリに関係なく、バックエンドのNotesビューにすべての名前を返します。getAllEntriesByKey()があることに気付きましたが、Xpagesビューは、列の値ではなく検索によってフィルタリングされます。

検索後にビューに表示された結果のみに列値の配列を作成する方法はありますか?ヒントをありがとう。

4

1 に答える 1

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);
于 2013-02-22T15:32:08.203 に答える