2010-09-27 34 views
5

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.

Trả lời

4

Nếu chức năng onPaging trả về 'dừng' thì quá trình phân trang sẽ bị dừng.

+0

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 .. –

+0

@ Marcus: Như một cách giải quyết bạn có thể đặt lại giá trị với 'setGridParam' – Oleg

+0

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 .. –

0

Theo quan sát của tôi, sự kiện trên trang hoạt động tốt trong plugin jqgrid mới nhất. Nếu chúng tôi sử dụng plugin jqgrid trước (trước phiên bản 3.8). Sự kiện trên trang sẽ hoạt động nhưng có lỗi trong phân trang sau khi chúng tôi sử dụng sự kiện này. giá trị gia tăng của trang hoặc người dùng nhấp vào ok hoặc hủy (trong cả hai trường hợp). Điều này dẫn đến dữ liệu bị hỏng của paggination.

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