Tôi mới sử dụng EXTJS 4 và diễn đàn này. Xin lỗi nếu nó đã được thảo luận trong một chủ đề khác, nhưng tôi đã không tìm thấy nó.Có trình xử lý sự kiện nào trong các Nút của Thanh công cụ phân trang EXTJS không?
Câu hỏi của tôi là, tôi muốn Bảng điều khiển lưới của tôi có Phân trang để cập nhật cửa hàng đó sau mỗi 10 giây. Tôi đã tìm thấy một giải pháp sử dụng userStore.loadPage(current_page)
, nhưng nó có một vấn đề.
Một thời gian, cập nhật Bảng điều khiển lưới gần như trong cùng một thời điểm với người dùng nhấp "tiếp theo" hoặc "chiếm ưu thế" trong Phân trang. Điều này làm cho Grid Panel không hoạt động đúng cách. Những gì tôi muốn là, khi tôi nhấp vào "tiếp theo" hoặc "trước" hoặc "làm mới", yêu cầu trước đó (userStore.loadPage(current_page)
) bị hủy. Vì vậy, nó sẽ không can thiệp yêu cầu hiện tại của tôi.
Nhưng tôi không tìm thấy sự kiện trong Thanh công cụ phân trang EXTJS để xử lý nút "tiếp theo", "trước" hoặc "làm mới". Giải pháp cho vấn đề này là gì? Không có cách nào khác ư?
Đây là mã của tôi chỉ để tham khảo:
// create User Store
var userStore = Ext.create('Ext.data.Store', {
model: 'EDC',
autoLoad: true,
pageSize: 10,
proxy: {
type: 'ajax',
url : 'Monitoring', // it is using Java servlet, so I write it this way
reader: {
type: 'json',
root: 'edc',
totalProperty: 'total'
}
}
});
// create Grid Panel
Ext.create('Ext.grid.Panel', {
store: userStore,
width: 800,
height: 400,
columns: [
{
text: "ID",
width: 50,
dataIndex: 'id'
},
{
text: 'Serial Number',
flex: 1,
dataIndex: 'sn'
}
// etc...
],
dockedItems: [{
xtype: 'pagingtoolbar',
store: userStore,
dock: 'bottom',
displayInfo: true
}]
});
Đó là cách nó được cập nhật mỗi 10 giây
// after on Ready, reload every 10 seconds
Ext.onReady(function(){
self.setInterval("reloadCurrentEdc()", 10000);
});
// function for update
function reloadCurrentEdc(){
if(typeof userStore != 'undefined'){
userStore.loadPage(userStore.currentPage);
}
}
tôi nên đặt này ở đâu?Ngoài ra, tôi nghĩ rằng có một số lỗi chính tả: "beforehange", (giả sử nó phải là beforechange) –