2010年7月11日星期日

ASP.NET Menu預設限制3個層級

有時有些功夫,永遠都是工作上不會做,但在家的時候就會玩玩,ASP.NET 2.0出現的Menu Control已經是其中一個。
之前的工作地方都會用TelerikComponentArt的商業Controls,最主要是付出一筆過金錢,但省回設計樣式上的人力資源。

言歸正傳,這幾天我都在了解SQL Server 2005新增的common table expression (CTE),最主要是想解決一些我之前遇到的recursive query問題,而ASP.NET Menu中,每一個MenuItem都有自己的Value,而這個Value其實算是一個Identify,因為增加階層的時候是透過Value Path去插入新一層MenuItem,而我就是要透過CTE,在一個典型Product Category Table中得到正確的ValuePath再投放給Menu Controls。

但運行的時候發現永遠都只得第一層的static menu和三層dynamic menu,搞了接近一小時,百思不得其解,因為三個主要相關property - StaticDisplayLevels / DisappearAfter / MaximumDynamicDisplayLevels我都沒有去設置一個實數。

但反而問題就是出現在MaximumDynamicDisplayLevels,根據MSDN所說 :
The number of menu levels to render for a dynamic menu. The default is 3.

難怪顯示不到第4層目錄,解決方面顯然是增加數值,但Microsoft似乎把default value設得太低吧....

沒有留言:

發佈留言