Sharepoint DateTimeControl的javascript问题
正在开发中的Sharepoint上的设备管理系统,需要一个带有日期选择器的控件,自己懒得写,就去找现成的了,阅读Sharepoint的SDK,发现Sharepoint也提供一个日期选择器——DateTimeControl
DateTimeControl calDate = new DateTimeControl();
calDate.ID = "WCal" + this.UniqueID; //设定一个唯一ID
calDate.LocaleId = (int)SPContext.Current.RegionalSettings.LocaleId;//设置日期选择器的区域类型,便于自动设置日期格式和语言
calDate.DateOnly = true;//只需要选择日期,时间也可以选择,这个参数不设置,默认就带时间选择的。
if (!Page.ClientScript.IsClientScriptIncludeRegistered("datepicker.js"))
{
Page.ClientScript.RegisterClientScriptInclude("datepicker.js", "/_layouts/datepicker.js");
}
using Microsoft.SharePoint.WebControls;
这个控件比较好用,可以设置比较多的参数,就决定用它了。
使用的方法如下:
DateTimeControl calDate = new DateTimeControl();
calDate.ID = "WCal" + this.UniqueID; //设定一个唯一ID
calDate.LocaleId = (int)SPContext.Current.RegionalSettings.LocaleId;//设置日期选择器的区域类型,便于自动设置日期格式和语言
calDate.DateOnly = true;//只需要选择日期,时间也可以选择,这个参数不设置,默认就带时间选择的。
按照以前的想法,打包,编译,部署,就可以使用,但是问题出现了:
每次在首页或者自己创建的页面上,都是Javascript错误,不能自动跳出日期选择器出来,郁闷。
莫非缺少Javascript?按照以前的控件创建,都会自动把Javascript包含在里面了啊。
搜了一下网络,提到这个问题的人不多,都没有说到点子上。
某日自己看Sharepoint包含的资源,发现了DateTimeControl需要的Javascript文件为:datepicker.js
灵光一闪,莫非忘了包含这个文件了?
马上尝试:
if (!Page.ClientScript.IsClientScriptIncludeRegistered("datepicker.js"))
{
Page.ClientScript.RegisterClientScriptInclude("datepicker.js", "/_layouts/datepicker.js");
}
再运行一次,OMG,出来了,不再郁闷了,原来有些页面是包含了个js文件,有些页面没有包含这个文件,可恶,自动化程度太低了,调用了这个控件,最好自动包含了js文件啊,不用开发者自行包含啊。算是一个Bug吧。以前其他控件不会有这个问题哦。
解决了,有相同问题的同志,参考一下吧。