Ext JS 大型日曆控制項 標籤: 日曆extcalendarcomponentslayoutborder 2010-09-19 19:41 10719人閱讀 評論(7) 收藏 舉報
目錄(?)[+]
原文:Ext JS 3.3 Calendar Component on September 8, 2010 by Brian Moeskau 對一個成熟的日曆控制項而言,應該可以很輕鬆地整合之,或本身就可以視其為一個可產品化的項目。不僅如此,通過觀察這個日曆控制項內部原理,你還將看到實現一個Ext組件是多麽的複雜。因此,通過本例子的Sample,你將看到整合過程中,需要一點特殊的技巧性在內。不過另一方面,卻也要盡量簡單,去掉實際需求中不需要的內容。為此,我們認為在這次的發布中,針對平衡簡單與複雜之間的取捨可以獲得一個較好的平衡性,以期待您的認同。
認識CalendarPanel
主要的日曆演示程序稱作CalendarPanel,是一個大頭組件,其下面由各個不同的組件所組成。但是你也可以獨立使用其中某些的子控制項(如各種calendar子視圖)。當然CalendarPanel作為大頭控制項是最高層次的容器並替大部分視圖提供所需的配置項參數。所以初初你常會使用到就是這個CalendarPanel。況且她繼承自Panel面版類,所以在她身上可以任意套用一種布局風格。 CalendarPanel的渲染實際是通過不同視圖組件其模板依次輪流渲染的結果,當然,也可以説CalendarPanel是一個容器。下面,我們來看看CalendarPanel分別有哪些的組件組成:
MonthView – 通過MonthViewTemplate模板的視圖,沒有滾動條並總是自適應CalendarPanel大小的。該視圖基於box layout的實現。
DayView – 該試圖下細分了兩個子視圖:DayHeaerView (通過DayHeaderTemplate渲染) 以及 DayBodyView(通過DayBodyTemplate渲染)。頭部視圖(The header view)位於視圖的頂部,是偵聽全天事件的所在;而主題視圖(The body view)則是非事件區域,可被滾動的區域。這是兩種完全不同的視圖類型,有著不同的布局方式和事件處理手段等等的區別,所以必須劃分開來。
WeekView –只是DayView的一天的概念擴展到七天,多次渲染而已。這樣,也不必要刻意創建多個模板了。
雖然CalendarPanel自帶一直默認的編輯形式EventEditorForm,但這仍是遠遠不夠的,你應該根據需求制定新的編輯形式,例如表單驗證規則等的屬性,預計會有什麽事件,都依據每一個項目的不同而不同。故所以,如果開發你的程序時,通常首先第一步的就是制定日曆編輯形式。
CalendarPanel配置項
CalendarPanel類提供許多的配置項參數。通過這些參數,你可以顯示或隱藏默認的視圖,顯示或隱藏默認導航條,顯示或隱藏當前的事件以「今天」代替……。子視圖也有許多配置項如 enableFx, enableDD, startDay等等。由於使用CalendarPanel 的時候你不能直接訪問視圖對象,所以要配置子視圖的話就必須通過 xxViewConfig的配置項(這個xx可替換為「day,」 「week」或「month」)。例如,在例子test-app.js就有針對月視圖的配置項內容:
[javascript] view plaincopy
※景深的控制和視覺衝擊
※血糖控制不好易致腸胃罷工
※高血糖5字真言,不用吃藥就可控制血糖,扔掉藥罐子吧!
※烏克蘭抗議者稱已控制首都 總統下落不明(組圖)
※拜歐拉大學-愛情那些事——4性( 媒體對性觀念的影響以及情感中的行為控制)
TAG:控制 | 日曆 | 控制項 |