網友Slash問:

最近加入了ASP.NET開發人員的行列(歡迎,歡迎,熱烈歡迎!),老板交付的第一個任務是將Javascript寫的檔案總管換成ASP.NET中的TreeView控制項,且需要右鍵選單、新增、刪除、更名、移動、複製資料夾,目錄要能新增無限多層... 初步構想是在各節點都觸發右鍵事件,一旦觸發就傳入給Javascript撰寫的右鍵選單類別三個參數,分別是位於哪一階層的參數、nodeID、rootID,讓各方法得知目錄所在位置,而被呼叫的方法就傳回Directory字串跟動態更新Sitemap的內容。

黑暗執行緒回答:

原則上這樣的構想是OK的,但實作細節就要考驗Javascript的功力了。

我一直很喜愛TreeView的表現方式,所以從ASP時代就用過Java Applet版本TreeView、ASP.NET 1.1時用IE WebControls版的TreeView,到ASP.NET 2.0 TreeView終於成為內建控件的一員。跟一些3rd Party廠商所提供的TreeView比起來,MS版的TreeView在Client-Side的動態支援上實在有些簡陋。例如: 用拖拉方式移動Node、動態載入ChildNodes、按右鍵彈出選單、整合AJAX... 等等,內建TreeView不是做不到,但往往缺少直接方便的API Method、有時甚至需要自己花很多精神從底層搞起,值不值得見仁見智。抱著練功的心態去看待這番整治工程的話還OK,但如果目標是要做得又快又精美,則不妨考量花點小錢省時間。(相信我,要做到這些3rd Party TreeView的華麗程度,Bug-Free,還要求可以跨IE、Firefox、Safari,開發工程絕對會讓你脫一層皮!)

介紹兩個我看過不錯的TreeView WebControl(都支援AJAX,文件、範例都很完整)

1. FlyTreeView For ASP.NET 2.0 
    Live Demo Price < USD 200

2.WebUI AJAX TreeView Control 
    模擬Vista檔案總管的Demo, 模仿Outlook 2007的Demo
    比FlyTreeView華麗多了,但較貴,約USD 1000

以上兩個控件,其介面的精美性,功能完整度,以開發類似UI所要花費的時間精力,相對於產品售價,我怎麼看都覺得是划算的投資。

不過,在某些情境下(例如要包含在大量銷售的自家產品中),即使微薄的成本也要斤斤計較,自行開發就變成不得不的選擇,但我建議還是可以參考學習這些優秀產品的架構與設計方式,反正JS的Source Code等同於半公開的,由其中了解實作各種操作的技巧(這是我很常用的學習方式),別一味盜用照抄就成了。


Comments

Be the first to post a comment

Post a comment