入门请看KaneBoy写很好的入门的ppt----Walkthrough-WebPart 。
第一个webpart 是Event Calendar 读取Event,比较简单,重写Calendar控件就可以了,我参考了CodeProject的一位前辈 Custom_Calendar_Web_Part,不过那个的取时间有点问题,自己笨笨的写了一个
Code
//没贴CSS上来  将注释去掉就行了

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint.Utilities;
using System.ComponentModel;

namespace SharePoint.Panda.Calendar {
    [Guid ( "9c7c129b-9442-4d16-a30f-c1d43c35c0e3" )]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart {
        public WebPart1 () {
        }
        System.Web.UI.WebControls.Calendar cal;
        string url;
        Literal redire = new Literal ();

private string _eventName = "CLP.SRS.Events"; //list name
        [Personalizable ( PersonalizationScope.Shared ), WebBrowsable ( true ), WebDisplayName ( "Event name" ), WebDescription ( "Input event name" )]
        public string eventName {
            get { return _eventName; }
            set { _eventName = value; }
        }
        protected override void OnInit ( EventArgs e ) {
            this.EnsureChildControls ();
            this.Load += new EventHandler (Calendar_Load);
            base.OnInit ( e );
        }
        void Calendar_Load ( object sender, EventArgs e ) {
            if ( string.IsNullOrEmpty ( Page.Request.Url.ToString() ) ) {
                return;
            }
            if ( this.WebPartManager.DisplayMode == WebPartManager.EditDisplayMode ) {
                return;
            }
        }

protected override void CreateChildControls () {
            cal = new System.Web.UI.WebControls.Calendar ();
            this.cal.ID = "Calendar";
            //this.cal.BorderColor = System.Drawing.ColorTranslator.FromHtml ( "#f1f9e2" );
            //this.cal.BorderStyle = BorderStyle.Solid;
            //this.cal.BorderColor = System.Drawing.ColorTranslator.FromHtml ( "#f1f9e2" );
            //this.cal.BorderWidth = 0;
            //this.cal.SelectorStyle.Font.Bold = true;
            this.cal.CssClass = "CLPSRS_Calendar";
            this.cal.TitleStyle.CssClass = "Calenader_Header";
            //this.cal.DayHeaderStyle.ForeColor = System.Drawing.ColorTranslator.FromHtml ( "#818080" );
            //this.cal.OtherMonthDayStyle.ForeColor = System.Drawing.ColorTranslator.FromHtml ( "#f1f9e2" );
            //this.cal.OtherMonthDayStyle.BackColor = System.Drawing.ColorTranslator.FromHtml ( "#f1f9e2" );        
            //this.cal.OtherMonthDayStyle.Font.Bold = false;

this.cal.OtherMonthDayStyle.CssClass = "Calendar_IsOtherMonth";
            //this.cal.SelectedDayStyle.ForeColor = System.Drawing.ColorTranslator.FromHtml ( "#818080" );
            //this.cal.SelectedDayStyle.BackColor = System.Drawing.ColorTranslator.FromHtml ( "#ffffff" );
            this.cal.SelectedDayStyle.CssClass = "Calendar_SelectedDay";
            this.cal.DayRender += new System.Web.UI.WebControls.DayRenderEventHandler ( OnDayRender );
            this.cal.SelectionChanged += new EventHandler ( this.cal_SelectionChanged );
            this.Controls.Add ( cal );
            this.Controls.Add ( redire );

}
        protected void cal_SelectionChanged ( object sender, EventArgs e ) {
            System.Web.UI.WebControls.Calendar sendCal = ( System.Web.UI.WebControls.Calendar ) sender;
            RenderEventsByDate ( sendCal.SelectedDate );
        }

private void RenderEventsByDate ( DateTime selectedDate ) {
            if ( !string.IsNullOrEmpty ( eventName ) ) {
                SPSecurity.RunWithElevatedPrivileges ( delegate () {
                    using ( SPSite site = new SPSite ( SPContext.Current.Site.ID ) ) {
                        try {
                            using ( SPWeb web = site.RootWeb ) {
                                try {
                                    SPList calendarList = web.Lists [eventName];
                                    SPQuery query = new SPQuery ();
                                    query.Query = string.Format ( "<Where><Eq><FieldRef Name='EventDate'/><Value Type='DateTime'>{0}</Value></Eq></Where>", SPUtility.CreateISO8601DateTimeFromSystemDateTime ( selectedDate ) );
                                    SPListItemCollection calendarItems = calendarList.GetItems ( query );
                                    url = SPContext.Current.Web.Url + "/Lists/" + eventName.Replace ( ".", "" ) + "/calendar.aspx?CalendarDate=" +
                                         selectedDate.Month.ToString () + "/" + selectedDate.Day.ToString () + "/" +
                                         selectedDate.Year.ToString () + "&CalendarPeriod=month";
                                    redire.Text = "<script language='javascript'>window.location='" + url + "'</script>";

} catch ( Exception ee ) {
                                    web.Dispose ();
                                    string error = ee.ToString ();
                                }
                            }
                        } catch ( Exception ee ) {
                            site.Dispose ();
                            string error = ee.ToString ();
                        }
                    }
                } );
            }
        }

protected void OnDayRender ( object sender, DayRenderEventArgs e ) {
            CalendarDay day = ( ( DayRenderEventArgs ) e ).Day;
            TableCell cell = ( ( DayRenderEventArgs ) e ).Cell;
            cell.CssClass = "Calendar_Day";
            //cell.Style.Add ( "color", "#818080" );
            if ( day.IsToday && !day.IsOtherMonth ) {
              // cell.Font.Bold = true;
               //cell.BackColor = System.Drawing.ColorTranslator.FromHtml ( "#6f8c16" );
                cell.CssClass = "Calendar_IsToday";
            } else if ( day.IsOtherMonth ) {               
                //cell.Style.Add ( "color", "#f1f9e2" );
                cell.CssClass = "Calendar_IsOtherMonth";
                cell.Text = "&nbsp";
            }
            if (!day.IsOtherMonth ){
                if ( !string.IsNullOrEmpty ( eventName ) ) {
                    SPSecurity.RunWithElevatedPrivileges ( delegate () {
                        using ( SPSite site = new SPSite ( SPContext.Current.Site.ID ) ) {
                            try {
                                using ( SPWeb web = site.RootWeb ) {
                                    try {
                                        SPQuery query = new SPQuery ();
                                        query.Query = string.Format ( "<Where><Eq><FieldRef Name='EventDate'/><Value Type='DateTime'>{0}</Value></Eq></Where>", SPUtility.CreateISO8601DateTimeFromSystemDateTime ( day.Date ) );
                                        SPListItemCollection calendarItems = web.Lists [eventName].GetItems ( query );
                                        if ( calendarItems.Count > 0 ) {
                                            //cell.BackColor = System.Drawing.Color.Khaki;
                                            cell.CssClass = "Calendar_EventDay";
                                        }
                                    } catch ( Exception ee ) {
                                        web.Dispose ();
                                        string error = ee.ToString ();
                                    }
                                }
                            } catch ( Exception ee ) {
                                site.Dispose ();
                                string error = ee.ToString ();
                            }
                        }
                    } );
                }
            }

}
        protected override void Render ( HtmlTextWriter writer ) {
            EnsureChildControls ();
            redire.RenderControl ( writer );
            cal.RenderControl ( writer );
        }
    }
}

然后部署Webpart..... 就不说了

已经更新了 SharePoint Event Calendar Recurrence 属性

转载于:https://www.cnblogs.com/chris_thanks/archive/2009/01/17/1377617.html

SharePoint Calendar Webparts相关推荐

  1. 使用JQuery筛选sharepoint日历里的超链接

    在一个客户的case中遇到需要在SharePoint Calendar试图里面根据一定的规则来显示或者隐藏记录,为了取得记录的handle,可以通过超链接选择器来查找,语法规则如下: $('a[hre ...

  2. MOS2010开发基础和集几种开发模型

    基础 基本的部署结构图类似如下 创建新的Web Application的原因: One key reason to create a new web application is to isolate ...

  3. SharePoint 2010 IT Professional--巧用Calendar List

    SharePoint 2010的Calendar List很试用于企业Meeting.Training等等用途,这里以一个Training为例,为大家介绍一下Calendar list的巧妙之处. 需 ...

  4. 转载---sharepoint相关资源

    免费的SharePoint Web Parts (第3方) ActiveX Scripting Web Part (Simon Mourier) AD Management Web Part (Fab ...

  5. sharepoint数据库研究

    一.程序文件及IIS配置       二.SPS数据库对象分析              2 1.主要数据库表              2 2.主要表及字段              2 3.Win ...

  6. 非常不错的sharepoint webpart工具集

    昕友.亿享 SharePoint WebPart 控件集 SharePoint Webparts,Moss Web Parts(Webpart控件) 欢迎免费下载使用昕友WebPart部件集,您可以免 ...

  7. SharePoint基础之六- SharePoint基础架构中涉及的ASP.NET架构

    ASP.NET框架代表着在IIS和ISAPI编程模型之上的一个重要的生产力层. 如果你熟悉ASP.NET开发的话, 你就会知道它为你的应用程序逻辑编写托管代码提供了便利, 比如说C#, VB.NET, ...

  8. SharePoint 2007图文开发教程(3)---实现简单的WebPart

    在前面的文章中,我们讲解了很多基础的内容,主要包括 安装配置.简单的创建网站等.相对来说比较简单.此文实现简单的WebPart,继续我们的SharePoint之旅. WebPart WebPart大家 ...

  9. [翻译]ASP.NET AJAX与SharePoint的集成

    原文: Integrating ASP.NET AJAX with SharePoint 来自微软SharePoint Team Blog Microsoft ASP.NET AJAX 1.0: 一点 ...

最新文章

  1. FUSE——用户空间文件系统
  2. 网络服务-SAMBA
  3. 关于Canvas的一些经验
  4. 中国牙科用人工骨替代材料市场供需态势与未来投资方向分析报告2022年
  5. Python基础教程:上下文管理器 context manager(with...as...)
  6. Intel Realsense D435 composite_frame类 frame类 video_frame类 depth_frame类的关系
  7. mysql主从复制思考_Mysql主从复制(拓展博客文章分享及思考)
  8. 在WordPress中添加简书风格的连载目录和文章导航
  9. android 字符串特殊字符转义
  10. mysql创建数据库与表_PHP MySQL 创建数据库和表 之 Create
  11. SpringBoot:@ConfigurationProperties注解使用与源码
  12. python3 小工具
  13. android实现qq登录功能实现原理,Android实现QQ登录功能
  14. 理解数据库设计范式【转】
  15. CodeSmith注册错误的解决方法
  16. 概率统计笔记之 “数学期望和方差”
  17. NBA篮球经典动画gif系列连载之三
  18. 干货!Python操作PDF的神器——PyMuPDF
  19. qt获取本机全部ipv4_QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址...
  20. 我是一个下「笨功夫」的人

热门文章

  1. Linux 文件权限管理命令chmod、chown
  2. 将protobuf文档转换成java代码
  3. Hibernate的常用API
  4. Spring AOP概述及底层实现原理
  5. Spring Initializr创建项目,利用阿里云URL解决Initialization failed for https://start.spring.io Please check URL
  6. python爬虫网络请求超时是什么意思_爬虫请求超时设置
  7. 基于 abp vNext 和 .NET Core 开发博客项目 - 统一规范API,包装返回模型
  8. centos7公司内网环境搭建集群性能测试环境(ip+域名部署)
  9. centos7安装mysql5.7.24版本
  10. IDEA中部署Tomcat设置访问路径