英语阅读推荐:主题切换控件 ExpressionBuilder
這里是Cat in dotNET的Random Clippings系列,專門向大家推薦.NET相關(guān)的英文技術(shù)文章,每期推薦兩篇文章,第一篇適合于英語技術(shù)文章閱讀的入門者練習(xí)閱讀能力,而第二篇則適合于進階練習(xí)與技術(shù)學(xué)習(xí)。
主題切換控件 (Theme Switcher Control)
大家都用過ASP.NET 2.0的主題了吧,在為網(wǎng)站增加幾個不同的主題后很多人都會發(fā)現(xiàn)了一個問題,那就是系統(tǒng)不提供一個控件給用戶自由選擇他們當(dāng)前所想看到的主題。這篇文章告訴你如何繼承自ListBox做一個簡單的主題切換控件,讓用戶可以隨時更改他們?yōu)g覽時所選用的主題。
既然是閱讀訓(xùn)練專題,那么我們就來慢慢看它的介紹。首先Introduction介紹了這個控件,"persistent through the use of a cookie"讓我們了解到用戶的選擇將通過Cookies來持久。
然后Using the control告訴我們?nèi)绾问褂眠@個控件,包括添加主題、添加配置信息到web.config和添加控件到頁面這3個步驟。這3個步驟對于大家來說都很容易,看著說明來做就是了:
- "Set the AllowNoTheme property to 'true' if you want to allow the user to choose no theme at all",意思是設(shè)置AllowNoTheme屬性為true后用戶將能夠選擇無主題。
- "set the NoThemeText property if you don't want to use the default text 'none'",無主題的選項默認顯示為"none",而你可以通過NoThemeText屬性更改此文本信息。
注意"Add the Http Module handler"這一節(jié)下面有個Warning,"this setting causes a server error in every page having a <head> tag without the runat="server" attribute",意思是說如果頁面的<head>標簽沒注明runat="server"則會導(dǎo)致錯誤。
接著How it works解釋了這個控件是怎么工作的,代碼是很容易讀懂的。控件繼承自ListBox,通過使用IO有關(guān)的類遍歷App_Theme下的子目錄并在ListBox中將它們的名稱顯示出來,然后根據(jù)用戶選擇保存Cookies。另外還有一個IHttpModule,它在PreRender階段進行處理,如果處理當(dāng)前請求的IHttpHandler是一個Page對象,那么它就根據(jù)Cookies為此Page應(yīng)用主題。
最后Known issues,也就是“已知問題”,它說明了如果使用了Server.Transfer則目標Page無法正常應(yīng)用Theme。為什么呢?大家可以自己思考一下,這和它應(yīng)用Theme的方式有關(guān)。
ExpressionBuilder (The CodeExpressionBuilder)
"A very exciting new feature in ASP.NET 2.0 is Expression Builders",沒錯,ExpressionBuilder確實是ASP.NET 2.0中一個讓人興奮的新功能,它讓我們方便的在SqlDataSource上聲明性設(shè)置ConnectionString:<%$ ConnectionStrings: MyConnectionString %>,又或者是使用語言資源:<%$ resources: ResourceKey %>。
除了這些功能以外,它還能干什么呢?"Now lets take it one step further",讓我們邁步走遠一點來看看。
可能很多人都嘗試過這樣設(shè)置屬性:Text="<%= DateTime.Now %>",但發(fā)現(xiàn)會導(dǎo)致錯誤。而使用文章中提供的CodeExpressionBuilder后,你可以這樣做:Text="<%$ Code: DateTime.Now %>",并且得到你之前預(yù)期的效果。
到底這是怎么實現(xiàn)的呢?通過閱讀上面引用的文章,你就知道其中的奧妙以及ExpressionBuilder的強大了。Infinities Loop的文章是非常好讀的,中間通過大量的加亮代碼或截圖來解釋說明,可以好像看連環(huán)畫一樣僅看圖不看字。
最后,如果你覺得Random Clipping的推薦不錯,可以考慮長期訂閱Cat in dotNET,這樣你將不會錯過將來的任何一篇推薦。這是我第一次寫這個系列,大家有什么好的建議可以直接在評論中寫,例如希望更加側(cè)重英語方面的解釋或者更加側(cè)重技術(shù)方面的解釋,又或者希望增加推薦文章的數(shù)量,我會根據(jù)評論在下一期中改進的。
轉(zhuǎn)載于:https://www.cnblogs.com/cathsfz/archive/2006/12/02/580142.html
總結(jié)
以上是生活随笔為你收集整理的英语阅读推荐:主题切换控件 ExpressionBuilder的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLServer基本函数(转)
- 下一篇: 偷偷的高兴!