要检查/是的默认全天事件

时间:2009-12-28 14:25:30

标签: sharepoint-2007

感谢您的大力帮助。另一个问题。如何将日历上的“全天事件”字段设置为默认为“已选中/是?”如果我们可以将全日活动的默认值设置为是,是否有办法隐藏时间字段(保留日期字段 - 只是没有时间字段)?我也想隐藏“工作区”字段(如果可能的话)。

谢谢

Dave M

1 个答案:

答案 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>

来源:http://sharepointsherpa.com/2008/08/26/sharepoint-2007-hiding-fields-on-newformaspx-and-editformaspx-the-easy-way/