2012-04-25 29 views
7

Tôi muốn fullCalendar vẽ lại chính nó (tất cả cấu trúc và sự kiện) mà không cần tải lại trang.vẽ lại fullCalendar khi đang bay

Kịch bản: Tôi đang sử dụng bản vá của FullCalendar hỗ trợ Resource View. Đối với một vài hành động của người dùng, tôi muốn thay đổi tài nguyên. Nhưng tôi không muốn tải lại trang.

+0

bạn đã đạt được điều này chưa? Tôi đang sử dụng một ngã ba khác nhau và tôi dường như không thể thay đổi tài nguyên và tải lại chế độ xem, khi tôi thay đổi một ngày. Phiên bản này có cho phép bạn thực hiện điều này không? – BlunT

+0

@BlunT .. Tôi đã sử dụng câu trả lời 'ganeshk' được đưa ra dưới đây –

+0

Ok Cảm ơn bạn. Tôi đã thử tùy chọn đó nhưng nó dường như không làm việc với các ngã ba tôi đang sử dụng ... – BlunT

Trả lời

18

Bạn có thể 'hủy' và 'hiển thị' toàn bộ lịch. Nhưng điều đó có thể rườm rà - đặc biệt là trong các trình duyệt cũ hơn.

$('#calendar').fullCalendar('destroy'); 
$('#calendar').fullCalendar('render'); 

Nếu bạn không thực sự cần phải làm bảng, nhưng chỉ rerender các sự kiện một lần nữa, bạn có thể sử dụng phương pháp 'rerenderEvents':

$('#calendar').fullCalendar('rerenderEvents'); 

Hy vọng rằng điều này giúp!

+0

Tôi đã tìm cách làm điều tương tự như OP và phá hủy/tái tạo lịch là cách duy nhất mà dường như làm việc. – cOle2

+0

Tác phẩm này phải được đánh dấu là câu trả lời. – Geethanga

+0

Kỳ lạ, các rerenderEvents không làm việc cho tôi. Sẽ báo cáo lại khi tôi tìm ra lý do tại sao ... – gregblass

1

Vấn đề:

"... Vấn đề là lịch được khởi tạo trong khi phương thức hoặc div là không nhìn thấy được ..." dựa vào liên kết này enter link description here

Theo tôi, phá hủy là không cần thiết trong trường hợp này, chỉ với kết xuất bạn mới có thể xem lịch.

Giải pháp của tôi:

<script type="text/javascript"> 
    $('#objectname').show(0,onObjectShow); 
    function onObjectShow(){$('#calendar').fullCalendar('render');} 
</script> 

Bạn phải chắc chắn rằng đối tượng (container của lịch) là hoàn toàn có thể nhìn thấy. Ví dụ: lỗi đầu tiên của tôi là đặt mã này vào sự kiện "onClick" và sự kiện nhấp được kích hoạt trước khi hiển thị vùng chứa đối tượng và không có hiệu lực.

Giải pháp Dựa trên số reference này.

1

Sử dụng refetchResources: .fullCalendar('refetchResources')

này sẽ lấy và tươi lại làm cho dữ liệu tài nguyên, theo FullCalendar documentation.

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