2013-06-08 35 views
7

Trong cửa hàng, có một beforeload sự kiện:Trong Extjs4.1, cách thêm thông số bổ sung trước khi đồng bộ hóa một cửa hàng?

beforeload(Ext.data.Store store, Ext.data.Operation operation, Object eOpts) 

bằng cách lắng nghe sự kiện này, tôi có thể thêm param thêm của tôi để hoạt động khi tôi làm hành động truy vấn, như thế này:

store.on('beforeload', function(store, operation) { 
    operation.params = Ext.applyIf({ 
     myParam1: 'param1', 
     myParam2: 'param2' 
    }, operation.params); 
}); 

tôi cũng cần thêm thông số bổ sung của tôi khi tôi tạo, cập nhật và tiêu diệt hành động. Tuy nhiên, sự kiện đồng bộ hóa không vượt qua hoạt động hoặc lưu trữ:

beforesync(Object options, Object eOpts) 

có cách nào khác không?

+0

Bạn đang sử dụng AutoSync? Có phải các thông số bổ sung bạn cần để truyền động không? –

+0

tôi gọi store.sync() thay vì sử dụng autoSync. Liệu nó có nghĩa là tôi phải thay đổi các thông số bổ sung mỗi lần trước khi tôi thực hiện truy vấn hoặc hành động CDU? @AmitAviv –

+2

Tùy thuộc vào ngữ cảnh của những gì thực sự gây ra thay đổi trong các tham số phụ, bạn có thể muốn sử dụng 'setExtraParam' khi thay đổi xảy ra trong giao diện người dùng. Giả sử có một hộp kiểm ở đâu đó đang gây ra thay đổi, bạn có thể nghe sự kiện thay đổi và thiết lập extraParam ở đó. –

Trả lời

2

Sử dụng store.getProxy().setExtraParams({ param: 'value', so:'on' }); hy vọng sẽ làm việc tốt:. D

+0

vấn đề là các extraParams chỉ được gửi trên các yêu cầu 'read' không tạo, cập nhật, hủy bỏ các yêu cầu nếu bạn định nghĩa một API trên cửa hàng. –

1

Sử dụng

store.getProxy() extraParams.paramName1 = paramValue1; store.getProxy(). ExtraParams.paramName2 = paramValue2;

0

ExtraParam sẽ chỉ có hiệu lực khi gọi API đã đọc. Không hoạt động để tạo, cập nhật, xóa

grid.store.getProxy().setExtraParam('paramA','XXX'); 

Tôi thử một cách khác.

grid.store.proxy.api.update = url + "?paramA=XXX"; //set before call sync() 

Java có thể nhận được param bởi

request.getParameter("paramA"); 
Các vấn đề liên quan