2012-05-25 8 views
5

My XPage ha un'origine dati di visualizzazione con una formula di ricerca ("Cerca nei risultati di visualizzazione") costruita dai parametri URL.Conta le voci nella vista XPages

I risultati della ricerca vengono visualizzati in un controllo di ripetizione che si trova all'interno di un pannello. Voglio nascondere questo pannello se non ci sono risultati di ricerca e visualizzare invece un messaggio appropriato.

Il pannello è visibile in base al seguente codice:

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

Tuttavia sembra che getAllEntries restituisce tutte le voci nella vista prima del filtraggio avviene. La Guida per AllEntries dice "Se una vista è filtrata da FTSearch, questa proprietà restituisce le voci nella vista filtrata."

Ho frainteso questo? C'è un modo per ottenere il numero di voci DOPO che il filtraggio è avvenuto?

+1

Perché non utilizzare l'indice del controllo ripetuto per il conteggio delle voci. – Ramkumar

risposta

15

Quando si accede all'origine dati di dominoView tramite SSJS non si ottiene il DominoView ma il NotesView ad esso associato. Ecco perché le proprietà e i metodi disponibili sono per la classe NotesView. Ma la ricerca viene eseguita sul front-end dell'origine dati dominoView non sull'oggetto NotesView ad esso associato.

Invece di utilizzare l'origine dati, ottenere il controllo che lo utilizza (ad esempio una ripetizione, viewPanel ecc.) E utilizzare il metodo getRowCount(). Questo ti darà il giusto totale. Per esempio.

getComponent("repeat1").getRowCount() 
+0

Questo lo ha ordinato. Grazie, Paul. –

+0

Anche questo è qualcosa che mi piacerebbe fare. Ma non funziona se ho un cercapersone collegato alla mia ripetizione; Ho appena ottenuto il conteggio del numero di elementi nella pagina corrente, anziché il conteggio di tutti gli elementi della vista filtrata. C'è un modo per farlo in questo caso ...? –

0

Usando la struttura Vedi caption ....

campione: "Visualizzazione 30 di 30220"

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

NOTA: Questo conta la riga classificato come bene.

Problemi correlati