ASP.NET技巧:为Blog打造个性日历

 更新时间:2006年09月28日 00:00:00   作者:  
日历控件是.net自带的控件之一,功能强大,在很多项目开发中都有用到,对于blog系统来说更是必不可少。纵是好玉也仍需雕琢,为了使它更美观实用,我们还需要对它进行二次开发。

  新建一个用户控件,把calender控件拉进来。第一步是外观设置,这个根据你的需要,只需对它的相关属性做一些调整即可。下图是我调整后的界面


   属性设置如下:

<asp:calendar id="Calendar1" CellPadding="2" Width="160px" TitleStyle-BackColor="#000000"      
  BorderColor="#aaaaaa"
  DayHeaderStyle-BackColor="#5e715e"
  OtherMonthDayStyle-ForeColor="#cccccc"
  DayNameFormat="Full"
  runat="server"
  TitleStyle-ForeColor="#ffffff"
  NextPrevStyle-ForeColor="#ffffff"
  CellSpacing="1"
  WeekendDayStyle-BackColor="#eeeeee"
  DayHeaderStyle-ForeColor="#ffffff"
  SelectionMode="None"
  TodayDayStyle-BorderColor="#5e715e"
  TodayDayStyle-BorderWidth="1"
  TodayDayStyle-Font-Bold="true"
  TodayDayStyle-ForeColor="#5e715e"

  第二步是对内部功能的调整,这个工作主要集中在以下两个事件的处理上。

   PreRender:当服务器控件将要呈现给其包含的Page对象时发生。

   DayRender:当为Calendar控件在控件层次结构中创建每一天时发生。

  先定义三个整型变量和整型数组

private int[] arrCurrentDays,arrPreDays,arrNextDays; //三个变量分别是当前月,前一月,和下一个月
private int intCurrentMonth,intPreMonth,intNextMonth; //三个整型数组存放相对月份写有blog的日期
protected System.Web.UI.WebControls.Calendar Calendar1; //这个就是我们的日历控件了

  2. 下面我将分别给出这两个事件的源码,并在下面解释它实现的功能,如果你看不明白,可以先看下面的说明

  PreRender

private void Calendar1_PreRender(object sender, System.EventArgs e)
{
 Thread threadCurrent = Thread.CurrentThread;
 CultureInfo ciNew = (CultureInfo)threadCurrent.CurrentCulture.Clone();
 ciNew.DateTimeFormat.DayNames = new string[]{"日","一","二","三","四","五","六"};
 ciNew.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Sunday;
 threadCurrent.CurrentCulture = ciNew;
}

  以上代码改变了星期名称的显示。你只需改变字符数组的值就能改名称显示。

  DayRender

private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
 //该控件在创建每一天时发生。

 CalendarDay d = ((DayRenderEventArgs)e).Day;
 TableCell c = ((DayRenderEventArgs)e).Cell;
}

相关文章

  • ASP.NET拒绝访问临时目录的解决方法

    ASP.NET拒绝访问临时目录的解决方法

    这篇文章主要介绍了ASP.NET拒绝访问临时目录的解决方法,大家参考使用吧
    2013-11-11
  • iis的http 500内部服务器错误的解决

    iis的http 500内部服务器错误的解决

    iis的http 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是asp程序不能浏览但htm静态网页不受影响。另外当错误发生时,系统事件日志和安全事件日志都会有相应的记录
    2007-04-04
  • ASP.NET Core与NLog集成的完整步骤

    ASP.NET Core与NLog集成的完整步骤

    NLog是一个免费的日志记录框架,专门为.net平台下的框架提供日志功能,下面这篇文章主要给大家介绍了关于ASP.NET Core与NLog集成的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • asp.net开发中怎样去突破文件依赖缓存

    asp.net开发中怎样去突破文件依赖缓存

    缓存大家用的太多了,简单至一个用static修饰的变量都可以视作缓存,复杂至Memcached等大数据量的缓存。
    2011-07-07
  • 轻量级ORM框架Dapper应用之Dapper支持存储过程

    轻量级ORM框架Dapper应用之Dapper支持存储过程

    这篇文章介绍了Dapper支持使用存储过程的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • asp.net实现数据从DataTable导入到Excel文件并创建表的方法

    asp.net实现数据从DataTable导入到Excel文件并创建表的方法

    这篇文章主要介绍了asp.net实现数据从DataTable导入到Excel文件并创建表的方法,涉及asp.net基于DataTable的数据库及excel操作相关技巧,需要的朋友可以参考下
    2015-12-12
  • c# indexof 用法深入理解

    c# indexof 用法深入理解

    在开发过程中经常会使用到c# indexof 查找字串中指定字符或字串首次出现的位置,返首索引值,本文将详细介绍,需要的朋友可以参考下
    2012-11-11
  • 实现Asp与Asp.Net共享Session的方法

    实现Asp与Asp.Net共享Session的方法

    这篇文章主要介绍了实现Asp与Asp.Net共享Session的方法,需要的朋友可以参考下
    2014-08-08
  • 如何使用Rotativa在ASP.NET Core MVC中创建PDF详解

    如何使用Rotativa在ASP.NET Core MVC中创建PDF详解

    这篇文章主要给大家介绍了关于如何使用Rotativa在ASP.NET Core MVC中创建PDF的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • .net实体类与json相互转换

    .net实体类与json相互转换

    这篇文章主要为大家详细介绍了.net实体类与json相互转换的相关资料,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论