2012-05-25 19 views
5

XPage của tôi có nguồn dữ liệu chế độ xem với công thức tìm kiếm ("Tìm kiếm trong kết quả xem") được tạo từ tham số URL.Đếm các mục nhập trong XPages xem

Kết quả tìm kiếm được hiển thị trong điều khiển lặp lại nằm bên trong bảng điều khiển. Tôi muốn ẩn bảng điều khiển này nếu không có kết quả tìm kiếm và hiển thị một thông báo thích hợp để thay thế.

Bảng điều là hiển thị dựa trên đoạn mã sau:

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

Tuy nhiên có vẻ như getAllEntries trả về tất cả các mục trong giao diện trước khi lọc diễn ra. Trợ giúp cho AllEntries cho biết "Nếu chế độ xem được lọc bởi FTSearch, thuộc tính này sẽ trả về các mục nhập trong chế độ xem được lọc".

Tôi đã hiểu nhầm điều này chưa? Có cách nào để tôi có thể nhận được số lượng mục SAU KHI quá trình lọc đã diễn ra không?

+1

Tại sao không sử dụng chỉ mục kiểm soát lặp lại của bạn để đếm các mục nhập. – Ramkumar

Trả lời

15

Khi bạn đang truy cập nguồn dữ liệu dominoView qua SSJS, bạn không nhận được dominoView nhưng NotesView được liên kết với nó. Đó là lý do tại sao các thuộc tính và phương thức có sẵn cho lớp NotesView. Tuy nhiên, việc tìm kiếm đang được thực hiện trên phần đầu cơ sở dữ liệu dominoView không phải trên đối tượng NotesView được liên kết với nó.

Thay vì sử dụng nguồn dữ liệu, hãy lấy điều khiển sử dụng nguồn dữ liệu (ví dụ: Lặp lại, xemPanel v.v.) và sử dụng phương thức getRowCount(). Điều này sẽ cung cấp cho bạn tổng số phù hợp. Ví dụ.

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

Điều đó đã sắp xếp nó. Cảm ơn Paul. –

+0

Đây cũng là điều tôi muốn làm. Nhưng nó không hoạt động nếu tôi có một máy nhắn tin gắn liền với lặp lại của tôi; Tôi chỉ nhận được số lượng các mục trên trang hiện tại, thay vì số lượng tất cả các mục xem đã lọc. Có cách nào để làm điều đó trong trường hợp này ...? –

0

Sử dụng tài sản Xem chú thích ....

mẫu: "Hiển thị 30 của 30.220"

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

Chú ý: Đây đếm hàng được phân loại là tốt.