2010-06-30 29 views
11

Tôi muốn thêm một trình xử lý sự kiện vào jqGrid (cho sự kiện onSelectRow) nhưng sau khi lưới đã được tạo trên trang, tức là tôi không thể mã hóa nó vào định nghĩa jqGrid ban đầu.Thêm một trình xử lý sự kiện vào jqGrid sau khi instantiation

Tôi đã cố gắng sử dụng setGridParam để thiết lập một event handler cho onSelectRow nhưng điều đó didnt làm việc :(

$('#list').jqGrid('setGridParam', { onSelectRow: function(id){ alert(id); } }); 

Các tài liệu jqGrid là khá khó khăn để có được những gì bạn muốn ra khỏi họ và tôi havent bất cứ điều gì liên quan đến phát hiện này vấn đề.

Trả lời

19

tôi chỉ thử nghiệm để sử dụng

$('#list').jqGrid('setGridParam', { onSelectRow: function(id){ alert(id); } }); 

trong mã của tôi và nó hoạt động. Nếu jqGrid đã có một onSelectRow nó ghi đè lên một xử lý sự kiện cũ. Nếu không có trình xử lý sự kiện onSelectRow, nó sẽ thêm một trình xử lý mới. Vì vậy, tất cả phải làm việc.

Nếu bạn gặp vấn đề, bạn nên đăng một ví dụ mã để tái tạo nó.

+0

Xin chào Oleg - có lẽ phiên bản jQuery của tôi? Làm việc của nó bây giờ với chính xác cùng một mã, tôi đã chơi với các phiên bản khác nhau của jQuery tại thời gian tho. Cảm ơn bạn đã xác nhận: P – Jimbo

+0

@Oleg, có cách nào để đăng ký nhiều chức năng được gọi trên sự kiện lưới không? Ví dụ, tôi muốn một số công cụ cơ bản để luôn chạy trên loadComplete, nhưng trên một số lưới, tôi có những thứ khác thuộc về đó là tốt. – IronicMuffin

+0

@IronicMuffin: Đó là một câu hỏi hay! Chỉ có một sự kiện 'loadComplete'. Nếu bạn mô tả chính xác hơn môi trường của mình và vấn đề của bạn, người ta có thể đề xuất giải pháp. – Oleg

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