感谢您的大力帮助。另一个问题。如何将日历上的“全天事件”字段设置为默认为“已选中/是?”如果我们可以将全日活动的默认值设置为是,是否有办法隐藏时间字段(保留日期字段 - 只是没有时间字段)?我也想隐藏“工作区”字段(如果可能的话)。
谢谢
Dave M
答案 0 :(得分:1)
如果您有权访问服务器上的代码,我会从控制台应用程序运行它,它就像一个魅力:
using(SPSite site = new SPSite("http://yoursite"))
{
using(SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["your list name"];
SPContentType ct = list.ContentTypes["Event"];
SPFieldLink fieldLink = ct.FieldLinks["fAllDayEvent"];
Type type = typeof(SPFieldLink);
PropertyInfo pi = type.GetProperty("Default", BindingFlags.NonPublic | BindingFlags.Instance);
pi.SetValue(fieldLink, "1", null);
ct.Update();
}
}
来源:http://pholpar.spaces.live.com/blog/cns!2CD45589973F2849!131.entry
我们只需要修改SPFieldLink,示例使用All Day Event
,我们的列表使用fAllDayEvent
。
我见过的另一种方法是修改列表的CAML(Example)。
哦,我们使用Javascript隐藏了Workspace字段:
<script language="javascript" type="text/javascript">
_spBodyOnLoadFunctionNames.push("hideFields");
function fc(FieldName) {
var arr = document.getElementsByTagName("!");
for (var i=0;i < arr.length; i++ ) {
if (arr[i].innerHTML.indexOf(FieldName) > 0) { return arr[i]; }
}
}
function hideFields() {
control = fc("Workspace");
control.parentNode.parentNode.style.display="none";
}
</script>