Chúng tôi sử dụng trình định dạng tùy chỉnh để xuất các hộp văn bản dạng html. Trong trường hợp người dùng đã nhập dữ liệu và họ nhấn nút tiếp theo/trước, chúng tôi muốn nói với họ "bạn đã chỉnh sửa dữ liệu, nhấn ok để ở lại trang này và lưu dữ liệu của bạn". Làm thế nào bạn có thể làm điều này?jqGrid ngăn điều hướng máy nhắn tin?
Sự kiện 'onPaging' kích hoạt khi bạn sử dụng máy nhắn tin nhưng dường như nó không cho phép bạn ngăn chặn việc phân trang xảy ra.
Cập nhật: workaround hiện tại:
var currPg = 1;
var dirty = 'false';
$("#list").jqGrid({
...
onPaging: function (b) {
var nextPg = $("#list").getGridParam("page");
if (dirty == 'false') {
currPg = nextPg;
return;
}
$("#dialog-confirm").dialog({
modal: true,
buttons: {
"Stay on current page": function() {
$(this).dialog("close");
},
"Change page": function() {
$(this).dialog("close");
reloadGrid($("#list"), null, nextPg, 'false');
}
}
});
$("#list").setGridParam({page:currPg}); //Workaround - jqGrid still increments the page num even when we return stop so we have to reset it (and track the current page num)
return 'stop';
},
Cập nhật 2: Bug đăng nhập here.
Cảm ơn Oleg, hãy làm việc này ngay bây giờ. Một lỗi tôi nghĩ rằng tôi đã tìm thấy là nếu bạn quay trở lại 'dừng' số trang lưới vẫn tăng lên .. sẽ gửi một lỗi .. –
@ Marcus: Như một cách giải quyết bạn có thể đặt lại giá trị với 'setGridParam' – Oleg
Chỉ cần làm rằng :) Có cách nào để xác định trang hiện được hiển thị không? Nếu bạn sử dụng 'getGridParam ('page')' nó sẽ trả về trang sẽ được hiển thị tiếp theo. Tôi đã sử dụng một biến mới để theo dõi số trang thực tế đang được hiển thị - không chắc chắn nếu có cách nào tốt hơn .. –