SharePoint Calendar Webparts
入门请看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 = " ";
}
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相关推荐
- 使用JQuery筛选sharepoint日历里的超链接
在一个客户的case中遇到需要在SharePoint Calendar试图里面根据一定的规则来显示或者隐藏记录,为了取得记录的handle,可以通过超链接选择器来查找,语法规则如下: $('a[hre ...
- MOS2010开发基础和集几种开发模型
基础 基本的部署结构图类似如下 创建新的Web Application的原因: One key reason to create a new web application is to isolate ...
- SharePoint 2010 IT Professional--巧用Calendar List
SharePoint 2010的Calendar List很试用于企业Meeting.Training等等用途,这里以一个Training为例,为大家介绍一下Calendar list的巧妙之处. 需 ...
- 转载---sharepoint相关资源
免费的SharePoint Web Parts (第3方) ActiveX Scripting Web Part (Simon Mourier) AD Management Web Part (Fab ...
- sharepoint数据库研究
一.程序文件及IIS配置 二.SPS数据库对象分析 2 1.主要数据库表 2 2.主要表及字段 2 3.Win ...
- 非常不错的sharepoint webpart工具集
昕友.亿享 SharePoint WebPart 控件集 SharePoint Webparts,Moss Web Parts(Webpart控件) 欢迎免费下载使用昕友WebPart部件集,您可以免 ...
- SharePoint基础之六- SharePoint基础架构中涉及的ASP.NET架构
ASP.NET框架代表着在IIS和ISAPI编程模型之上的一个重要的生产力层. 如果你熟悉ASP.NET开发的话, 你就会知道它为你的应用程序逻辑编写托管代码提供了便利, 比如说C#, VB.NET, ...
- SharePoint 2007图文开发教程(3)---实现简单的WebPart
在前面的文章中,我们讲解了很多基础的内容,主要包括 安装配置.简单的创建网站等.相对来说比较简单.此文实现简单的WebPart,继续我们的SharePoint之旅. WebPart WebPart大家 ...
- [翻译]ASP.NET AJAX与SharePoint的集成
原文: Integrating ASP.NET AJAX with SharePoint 来自微软SharePoint Team Blog Microsoft ASP.NET AJAX 1.0: 一点 ...
最新文章
- FUSE——用户空间文件系统
- 网络服务-SAMBA
- 关于Canvas的一些经验
- 中国牙科用人工骨替代材料市场供需态势与未来投资方向分析报告2022年
- Python基础教程:上下文管理器 context manager(with...as...)
- Intel Realsense D435 composite_frame类 frame类 video_frame类 depth_frame类的关系
- mysql主从复制思考_Mysql主从复制(拓展博客文章分享及思考)
- 在WordPress中添加简书风格的连载目录和文章导航
- android 字符串特殊字符转义
- mysql创建数据库与表_PHP MySQL 创建数据库和表 之 Create
- SpringBoot:@ConfigurationProperties注解使用与源码
- python3 小工具
- android实现qq登录功能实现原理,Android实现QQ登录功能
- 理解数据库设计范式【转】
- CodeSmith注册错误的解决方法
- 概率统计笔记之 “数学期望和方差”
- NBA篮球经典动画gif系列连载之三
- 干货!Python操作PDF的神器——PyMuPDF
- qt获取本机全部ipv4_QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址...
- 我是一个下「笨功夫」的人
热门文章
- Linux 文件权限管理命令chmod、chown
- 将protobuf文档转换成java代码
- Hibernate的常用API
- Spring AOP概述及底层实现原理
- Spring Initializr创建项目,利用阿里云URL解决Initialization failed for https://start.spring.io Please check URL
- python爬虫网络请求超时是什么意思_爬虫请求超时设置
- 基于 abp vNext 和 .NET Core 开发博客项目 - 统一规范API,包装返回模型
- centos7公司内网环境搭建集群性能测试环境(ip+域名部署)
- centos7安装mysql5.7.24版本
- IDEA中部署Tomcat设置访问路径