iT邦幫忙

0

如何用 ExtJs 建立行事曆

如題。

  1. 介面希望以下
    http://examples.sencha.com/extjs/6.2.0/examples/kitchensink/#calendar-panel

  2. 目前已有一包 Calendar Package,但不知道如何修改它

  3. 查到的資料是 http://docs.sencha.com/extjs/6.2.0/guides/components/calendar.html

但我按照 code 寫也沒辦法 work (也不確定程式要放在哪個位置)

  1. 主要問題是,請問有沒有(網上)中文說明能夠說 Calendar Package 的使用方法及資料庫的引用(之後資料要串 oracle的)

  2. 這項是 p.s. 我找到的是 http://extjs.org.cn/node/441 我的 package 是 6.2

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
timloo
iT邦研究生 2 級 ‧ 2017-10-18 11:04:41

一直都是使用網上強者用jquery開發的fullcalendar
而且fullcalendar 也被轉成配合各種前端框架使用。

因為不懂ExtJs,公司也以jquery為主。所以沒發現這套強大的行事曆。謝謝推薦。

討論一下我看你引用的手冊後的心得。做一些對照。

以fullcalendar而言

$('#calendar').fullCalendar({
…省略…
 events: {
          // 
            url: 'bm30108_getcalendar.jsp?UserID=' + hnUserId,
            error: function() {
                $('#script-warning').show();
            }
        },
…省略…        

敝公司用jsp(bm30108_getcalendar.jsp) 連oracle,抓資料後排成符合fullCalendar規範的json data 回傳。

在你引用的ExtJs calendar,也有類似的作法

Ext.define('KitchenSink.view.calendar.Panel', {
…省略…
        store: {
            autoLoad: true,
            proxy: {
                type: 'ajax',
                url: '/KitchenSink/CalendarFull'
            }
        }
…省略…        

ExtJs calendar 可能是支持多套行事曆的關係,Multi-Calendar Support
可以把calendar 和event 分段載入。

如範例

Ext.create({
    xtype: 'calendar',
    renderTo: Ext.getBody(),
    height: 400,
    width: 600,
    store: {
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url: 'calendars.php'
        },
        eventStoreDefaults: {
            proxy: {
                type: 'ajax',
                url: 'events.php'
            }
        }
    }
});

手冊上有規範calendars,events的json 基本格式。
可以照樣開在 db 的table裏。
之後 再逐筆逐欄位的 轉成json。

敝公司是用 一套粉老的simplejson JAVA LIBRARY 來從jdbc sql 轉json。

謝謝分享,不過 EXTJS 的缺點還是有,
像是它程式碼很厚,
有許多限制寫作上的限制。

timloo iT邦研究生 2 級 ‧ 2017-10-19 11:52:57 檢舉

如果沒有"多"日曆Multi-Calendar Support的需求,fullcalendar應該足夠應付。而且 sencha(EXTJS)的授權費用很貴,如果是gpl版的,
If you create software that uses GPL, you cannot release your work on Apple’s App Store.
也有限制。
誠如你所說,它的開發,挺不直覺的,要編譯。
在chrome上沒法直覺的除錯,下中斷點。
還是有專屬的chrome 外掛。

fullcalendar很流行,stackoverflow上的問答很多。
幾乎夠用。愈鑽研,愈發現功能豐富。

我要發表回答

立即登入回答