惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

博客园 - 刚说

高效批量计量单位转换 层次结构计量单位数据库设计以及组内组间转换率 不同计价方式对存货核算的影响 大数据量删除算法 .net操纵xml文件类(c#) WebWagon - An HTML Container Class asp.net1.1和asp.net 2.0共存 不敢相信吧!很灵的缘分配对软件! 免费动态网站空间申请(asp and asp.net and access or other)----(最新更新)收藏 哪位大虾给我找一个反编译工具 ASP遗留的二十大积习 Microsoft Visual Studio .NET 2005的更新 Windows死机密码 网站测试的郁闷 XP安装全攻略---------(个性化) 看看C# 给asp.net 一个礼物 XP命令集 换换鼠标→看看怎么样
为Blog打造个性日历
刚说 · 2005-05-13 · via 博客园 - 刚说

Posted on 2005-05-13 10:09  刚说  阅读(609)  评论()    收藏  举报

     日历控件是.net自带的控件之一,功能强大,在很多项目开发中都有用到,对于blog系统来说更是必不可少。纵是好玉也仍需雕琢,为了使它更美观实用,我们还需要对它进行二次开发。
  
  
  新建一个用户控件,把calender控件拉进来。第一步是外观设置,这个根据你的需要,只需对它的相关属性做一些调整即可。下图是我调整后的界面
  
  
   属性设置如下: 
   
  
[object]
   
  
  第二步是对内部功能的调整,这个工作主要集中在以下两个事件的处理上。
  
  
   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;
  }