Welcome 微信登录

首页 / 网页编程 / ASP.NET / 微型项目实践(11):控件与格式化显示

微型项目实践(11):控件与格式化显示2011-11-24 博客园 冬冬上一篇文章中,我们简单的分析了页面的设计,今天我们来看页面中的动态部分。Master和Default页 面中的主要控件如下表:

控件ID描述
CalendarAsp.Net自带的日历控件,使用自带的样式,以后我们会使用该控件实现根据日期的查询。
ListView_BlogClassListView,用于显示日志分类。该控件生成的Html全部是连接,不需要响应事件,故 EnableViewState设置为false。
ListView_BlogListListView,用于显示日志。该控件需要响应部分事件,所以其一部分子控件的 EnableViewState设置为false,需要响应事件的部分设置为true。
LiteralPageCountLiteral,用于显示分页。这个控件结合我们自己的分页Helper使用。
在页面中,有很多需要格式化显示的地方,比如系统规定日期的显示规则为:如果时间中的时分秒都 为零,则使用类似“2008年5月27日”的方式显示,否则,使用“2008年5月27日10:02:59”这样的方式显 示;还有字符串的截断、布尔型类使用“是/否”显示、空字符串使用“ ”显示,以及各种枚 举类型的显示等。对于这样的显示规则,我们使用Extension方法实现。如日期的显示使用以下代码(位 于DongBlog.UIToShowExtension.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>