令人頭痛的ExtJS日期時間控制項

2021-06-18 01:31:35 字數 2541 閱讀 9677

ext提供了日期、時間的控制項,但沒有將日期和時間組合在一起的控制項。在網上搜尋時,有前輩建立或重寫了時間相關的類,並提供了原始碼。不得不說那位作者對 extjs 框架理解得很透徹,雖然不知道他當時是怎樣研究的,但不得不服啊。

之前網上提供的**,我沒有詳細研究重寫的實現方法。但我不太贊成之前的路徑組織或者架構的實現方式。因為要使用這個起始結束時間控制項,需要在乙個頁面中包含好幾個js檔案,這多不方便啊。經常遇到的情況是,糾結了半天,除錯了半天,最後才發現少包含了乙個 js 檔案。況且,extjs 擁有 這麼強大的類使用框架,不利用下豈不可惜。所以,我現在採用的解決辦法:將這些類都重新命名,並依此放到對應的檔案路徑上。能夠解決這個問題,非常感謝我同事gw的幫助。當時,我實在是被這幾個檔案中的命名方式弄得暈頭轉向。現在的解決辦法是我自認為比較滿意的了。

原來csdn的部落格不能新增附件,所以,我將示例**防到了.

我在 apache 目錄下部署了測試示例。將附件中的測試用例,按照以下方式部署好,即可成功訪問:

apache 根目錄包含: extjs 4.0.7 的資料夾,再新建乙個測試用的資料夾 test-form, 根目錄的目錄列表如下所示:

ext-4.0.7-gpl

test-form/

test-form 資料夾裡的列表如下所示,即為解壓後的測試示例**。

當然,上述部署的方式只是為了配合 test-container.html 中能夠讓**找到正確的庫檔案,同時部署在 apache 也只是我個人比較偏愛的方式。讀者可以採用自己的方式即可。但如果按照上述的方式部署是測試通過的。

3.1 label和時間框不在一行?

採用新的路徑組織的結構,發現在測試**中出現如下圖所示的情況,標題、時間框、選擇按鈕,三個不位於同一行,但是,在工作專案中使用時,卻出現了滿意的情況。

未對齊的情況

專案中對齊的情況

猜測是引用的css樣式問題,這時發現我的測試**中是引用的 extjs 4.1 的樣式,而實際專案中所採用的是 extjs 4.0.7 版本,同時,測試用例和實際專案都是所採用 extjs 4.0.7 版本的**。找到原因就好辦了,參照專案將 css 檔案替換過來,問題就解決了。

再想深一些,如果不是存在參照專案中的**,那麼遇到這種問題真的有些不知所措,通過瀏覽器的元素檢視器,會發現時間控制項的寬度一直都固定在225,不管我怎樣修改控制項的總體寬度,但中間存在議程 x-box-inner 的寬度一直都是 255,這樣,因為放不下元素,所以它們就豎排並列顯示了。

3.2 只顯示乙個時間選擇控制項

當我們只需要提供乙個日期時間控制項,而不是同時包含起始和結束這樣中間的控制項時,怎麼辦呢?我當時直接使用 datetime 控制項,日期倒是設定成了當前日期,但是卻時間卻是一片空白。並且整個控制項在載入時就將已經彈出顯示了。

通過檢視提供起始時間和結束時間的控制項**,找到了。

mycontainer.add();

ext.create('zhiyuan.form.datetimefield', );

在探索解決實現日期和時間同時選的過程中,我發現解決網頁問題的流程是:先網上搜尋,能夠讓網上的示例跑起來;發現別人寫的不好,對參考**進行修改;最後發現自己寫的不好,再進行修改。只是這段過程有些漫長,還時不時遇到一些頭痛的問題。為什麼會頭痛呢?其實是因為對程式設計的語言和不熟悉庫的使用情況。當解決完問題後,就不頭痛了,就高興啦。

當然,不要只顧著高興了,在解決完乙個問題時,一定要對問題進行及時的整理。解決遇到的這個問題時,總覺得這個問題很簡單,而覺得沒有必要整理,但當再次遇到這個問題時,發現完全不知道解決辦法,這就會讓人很頭大。因為我就有這樣的經歷,當時解決這個時間控制項路徑的問題,但沒有及時整理,等這次再需要解決同樣的問題時,居然一點都不記得了,又重新解決並痛苦了一遍,這也是我寫這篇部落格的原因。

八月過了2/3多了,我才發表了一篇部落格,這樣可不行。當然,可以說專案太緊,下班後太累……,找這樣一大堆藉口的藉口是沒有意義的。一定堅持寫部落格,自己定的計畫是每個月至少四篇部落格(嘿嘿,這樣就可以一直得到持之以恆獎了)。順便將最近的一些做專案的感悟寫在這了。

當有需要增加新的需求時,通常我們就會加一點**,再或者修改功能時候再加一點**。其實也沒什麼特別好的辦法,因為新增**可以很快地實現需求。可是一定不要忘記:在專案有空餘時間的時候好好地整理**,能簡化地就簡化,能刪除的就刪除。可通常情況下,我們好像只要解決了問題,誰還記得當時很粗糙的**需要修改呢?我想,優秀的程式設計師是知道的。

又想對我的程式設計師人生發發感嘆了,有時真覺得我們不需要太聰明,只需要多多記錄,多多思考,多花點有用時間來學習即可。人生有很多的事情,程式、**、演講、愛情、家庭,只要自己真心付出了,恰當地使用利用好時間,就會有收穫,就會成功。加油!

令人頭痛的ExtJS日期時間控制項

ext提供了日期 時間的控制項,但沒有將日期和時間組合在一起的控制項。在網上搜尋時,有前輩建立或重寫了時間相關的類,並提供了原始碼。不得不說那位作者對 extjs 框架理解得很透徹,雖然不知道他當時是怎樣研究的,但不得不服啊。之前網上提供的 我沒有詳細研究重寫的實現方法。但我不太贊成之前的路徑組織或...

詳解C 中令人頭痛的 和 操作符

宣告指標 當你宣告乙個整型的時候,指標也是乙個變數 include using namespace std 一 int main 此處我們宣告了乙個指標p,它的型別是int 別小看這個 對這句話意義的改變,倘若我們忽略這個 號 二 includeusing namespace std int mai...

運維日記003 那些曾經令人頭痛的亂碼

在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決這個問題,就是在每...