2011-05-09 24 views
6

khi tôi sử dụng jqgrid và nhập các giá trị trên bộ lọc thanh công cụ trên cùng hoặc bộ lọc nâng cao và sau đó nhấp vào nút "làm mới lưới" ở chân lưới, nó sẽ xóa các giá trị trong các bộ lọc.Nút lưới làm mới jqgrid không truyền dọc theo các bộ lọc

là lỗi này trong jqgrid, hoặc có điều gì đó mà bạn phải làm một cách rõ ràng để giữ trạng thái của các bộ lọc cột thanh công cụ.

có cách nào để làm việc này không? enter image description here

Trả lời

5

Cách bạn có thể thấy trong mã nguồn của jqGrid (xem here) hành vi là do thiết kế như vậy. Phiên bản cũ nhất của jqGrid mà tôi có thể tìm thấy là jqGrid 3.5.2 và trong phiên bản các bộ lọc lưới cũng được lưu lại.

Nếu bạn cần một hành vi khác của nút tải lại, bạn có thể thêm (sử dụng navButtonAdd) nút tùy chỉnh của bạn trông giống nút tải lại ban đầu (mèo có "ui-icon-refresh" làm tham số buttonicon) và thực hiện một hành vi khác tải lại. Ví dụ bạn chỉ có thể gọi trigger("reloadGrid", [{page:1}]).

Một khả năng khác để tải lại tùy chỉnh là beforeRefreshafterRefresh sự kiện.

+0

@Oleg - cảm ơn phản hồi. Khi bạn nói điều này là "bởi thiết kế", bạn có nghĩ rằng bất cứ ai sẽ bao giờ muốn mất các bộ lọc trên làm mới ?? Có vẻ như một thiết kế kỳ lạ và nhiều sự giám sát. . – leora

+0

@ooo: Tôi hiểu ý bạn là gì, nhưng trong tất cả việc thực hiện jqGrid nút "Làm mới" làm chính xác như vậy: xóa bộ lọc và tải lại lưới. Nó gần giống như nút "Reset" trong hộp thoại tìm kiếm. Nếu tôi thực hiện nút "Làm mới", tôi sẽ triển khai càng nhiều càng tốt ** từ máy chủ ** chứ không phải là đặt lại bộ lọc. Trong trường hợp 'loadonce: true', trước tiên tôi sẽ lưu giá trị ban đầu của' datatype' ('json' hoặc 'xml') và trong nút "Refresh", tôi sẽ đặt lại giá trị ban đầu của 'datatype' và tải lại lưới mà không thay đổi các bộ lọc. – Oleg

+0

@ooo: Lợi thế của jqGrid là bạn có thể tương đối dễ dàng thực hiện hành vi mà bạn cần (xem câu trả lời chính của tôi) – Oleg

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