上一篇文章中,我們簡單的分析了頁面的設計,今天我們來看頁面中的動態部分。Master和Default頁 面中的主要控件如下表:
控件ID 描述 Calendar Asp.Net自帶的日歷控件,使用自帶的樣式,以後我們會使用該控件實現根據日期的查詢。 ListView_BlogClass ListView,用於顯示日志分類。該控件生成的Html全部是連接,不需要響應事件,故 EnableViewState設置為false。 ListView_BlogList ListView,用於顯示日志。該控件需要響應部分事件,所以其一部分子控件的 EnableViewState設置為false,需要響應事件的部分設置為true。 LiteralPageCount Literal,用於顯示分頁。這個控件結合我們自己的分頁Helper使用。在頁面中,有很多需要格式化顯示的地方,比如系統規定日期的顯示規則為:如果時間中的時分秒都 為零,則使用類似“2008年5月27日”的方式顯示,否則,使用“2008年5月27日10:02:59”這樣的方式顯 示;還有字符串的截斷、布爾型類使用“是/否”顯示、空字符串使用“ ”顯示,以及各種枚 舉類型的顯示等。對於這樣的顯示規則,我們使用Extension方法實現。如日期的顯示使用以下代碼(位 於\DongBlog.UI\ToShowExtension.cs):
1: /// <summary> 2: /// 顯示日期 3: /// </summary> 4: /// <param name="dateTime">要顯示的日期</param> 5: /// <returns>日期字符串</returns> 6: public static String ToShow(this DateTime dateTime) 7: { 8: if (dateTime.TimeOfDay == TimeSpan.Zero) 9: return string.Format("{0:yyyy年MM月dd日}", dateTime); 10: else 11: return string.Format("{0:yyyy年MM月dd日} {0:T}", dateTime); 12: 13: }
在ListView_BlogList中,使用到了該方法,用於顯示日志的更新時間:
<div runat="server" enableviewstate="false" class="BlogUpdateDateTime"> <%# ((DateTime)Eval("UpdateDateTime")).ToShow() %> </div>