2012-02-23 6 views
5

Tôi có mã sau để thay đổi trang của Jqgrid.Đặt trang trong jqgrid

function setPage() { 
    $('#editGrid').setGridParam({ page: 10 }).trigger('reloadGrid'); 
    alert("Success"); 
} 

Tôi nhận được thông báo thành công nhưng trang sẽ không thay đổi. Hiện tại tôi chạy hàm trong phần loadcomplete của lưới.

Mọi trợ giúp sẽ được đánh giá cao.

+0

Chỉ cần cho các hồ sơ. Tôi cũng đã cố gắng để thiết lập datatype để json bởi vì tôi sử dụng loadonce: true. $ ("# editGrid"). SetGridParam ({datatype: 'json', page: 10}). Trigger ('reloadGrid'); – ffffff01

+1

Đối với tất cả những ai đang thắc mắc; cách để thực hiện việc này có vẻ như sau: $ ("# editGrid"). trigger ("reloadGrid", [{page: 10}]); Tôi vẫn đang vật lộn để thực hiện công việc này khi tải, nhưng nếu tôi cố gắng đặt nó trong onSelectRow, vv nó hoạt động tốt. – ffffff01

Trả lời

8

.trigger ('reloadGrid') sẽ tải lại lưới thành trang 1. Vì vậy, bạn đã đặt setGridParam ({page: 10}) nhưng sau đó ngay sau .trigger ('reloadGrid') làm mới lưới tới trang 1.

để thiết lập các mạng lưới để trang 10 làm điều này:

$("#editGrid").trigger("reloadGrid",[{page:10}]); 
+0

có thể đặt số trang động không? tức là tôi muốn số 10 trong $ ("# editGrid"). trigger ("reloadGrid", [{page: 10}]); năng động và cần tăng thêm 1. – techlead

+2

@ SK11 sử dụng biến JS thay vì số cố định tức là $ ('# editGrid'). trigger ("reloadGrid", [{page: intPage}]); – SaschaM78

+0

@ SK11 Xin lỗi tôi đã không trả lời. SaschaM78 là chính xác. Bạn có thể có một biến giữ trang hiện tại sau đó tăng nó trên trang tiếp theo. tức là intPage ++; hoặc intPage = intPage + 1; Sau đó, bạn có thể thiết lập trang như SaschaM78 đã làm ở trên. – Jpepper