2011-07-25 53 views
7

Tôi đang làm việc trên một mạng lưới sử dụng bộ lọc, nhưng nó chỉ lọc trang đầu tiên. Khi tôi nhấp vào 'tiếp theo', nó sẽ quên các bộ lọc của tôi và tải bộ bản ghi tiếp theo. Làm cách nào để tôi nhớ bộ lọc ngay cả khi tôi nhấp vào 'tiếp theo' để tải tập hợp bản ghi tiếp theo từ phân trang?ExtJS phân trang lưới lọc chỉ trang đầu tiên

Cảm ơn, SS

Trả lời

6

Bạn cần phải thiết lập các thông số bộ lọc vào cửa hàng của baseParams. Việc truyền các tham số bộ lọc của bạn trong cuộc gọi load trên cửa hàng sẽ chỉ sử dụng chúng cho lần gọi tải đầu tiên — các cuộc gọi tiếp theo được thực hiện bởi thanh công cụ phân trang sẽ không chuyển chúng.

store.setBaseParam('query', 'search-text'); // always send 'query' 
store.load({ params: { start: 0, limit: 40 } }); 
// this will send: 
// { query: 'search-text', start: 0, limit: 40 } 

store.load({ params: { query: 'bob', start: 41, limit: 40 } }); 
// baseParams overridden by load params 
// { query: 'bob', start: 41, limit: 40 } 

store.load(); // only sends baseParams 
// { query: 'search-text' } 

ExtJS Ext.data.Storedocs có các chi tiết.

+0

Tuyệt vời, Cảm ơn WES Tôi sẽ thử điều này và cho bạn biết. –

-1

Đặt baseParams, như trong câu trả lời ở trên, chỉ dành cho EXTJS 3.x trở xuống. Đối ExtJS 4.xx, chúng ta phải thêm vào proxy của cửa hàng, một extraParam với truy vấn của bạn: store.getProxy().extraParam= A JSON ENCODED QUERY như: store.getProxy().extraParam= Ext.JSON.encode({'sort':[{'id':'ASC'}]}) Đối với một cấu hình phù hợp, điều tra theo yêu cầu của bạn, trong các công cụ phát triển navigator của bạn hoặc trong backend của bạn

Các vấn đề liên quan