5

私のXPageには、URLパラメータから構築された検索式(「ビュー結果の検索」)を含むビューデータソースがあります。

検索結果は、パネル内にあるリピートコントロールに表示されます。検索結果がない場合はこのパネルを非表示にし、代わりに適切なメッセージを表示したいと思います。

パネルは、次のコードに基づいて表示されます。

var vec:NotesViewEntryCollection = view1.getAllEntries();
vec.getCount() != 0;

ただし、getAllEntriesは、フィルタリングが行われる前に、ビュー内のすべてのエントリを返すようです。AllEntriesのヘルプには、「ビューがFTSearchによってフィルタリングされている場合、このプロパティはフィルタリングされたビューのエントリを返します」と記載されています。

私はこれを誤解しましたか?フィルタリングが行われた後にエントリの数を取得する方法はありますか?

4

2 に答える 2

16

SSJSを介してdominoViewデータソースにアクセスしている場合、dominoViewは取得されませんが、それに関連付けられたNotesViewが取得されます。そのため、使用可能なプロパティとメソッドはNotesViewクラス用です。ただし、検索は、関連付けられているNotesViewオブジェクトではなく、dominoViewデータソースフロントエンドで実行されています。

データソースを使用する代わりに、それを使用するコントロール(A repeat、viewPanelなど)を取得し、getRowCount()メソッドを使用します。これにより、適切な合計が得られます。例えば

getComponent("repeat1").getRowCount() 
于 2012-05-25T09:53:17.613 に答える
1

キャプションの表示プロパティを使用しています...

サンプル:「30220の30を表示する」

<xp:this.caption><![CDATA[#{javascript:return "Displaying " + getComponent("viewPanel1").getRowCount() + " of " + view1.getAllEntries().getCount();}]]></xp:this.caption>

注:これは、分類された行もカウントします。

于 2016-09-01T15:09:16.773 に答える