【问题标题】:How to hide, disable calendar list item fields in Sharepoint如何在 Sharepoint 中隐藏、禁用日历列表项字段
【发布时间】:2010-11-07 07:22:33
【问题描述】:

我想在editform.aspx 上隐藏或使某些字段只读。我按照这个page 上的示例进行了操作,但没有删除“原始”网络部件列表。我隐藏了原始 webpart 并从原始列表中创建了一个新的自定义列表。然后我能够在自定义列表上应用 xsl 以隐藏或使字段“只读”。不幸的是,重复发生的事件停止工作或完全搞砸了。有时我在日历视图中单击特定事件时收到错误消息。日历列表工作正常,当事件不重复时,这些字段在“编辑模式”中被隐藏或禁用。我的问题是。是否有任何其他方法可以隐藏或禁用日历列表中特定安全组或共享点组的项目?

【问题讨论】:

  • 我已经删除了这篇文章中的链接(大量垃圾邮件标记正在产生)。如果有人想查看链接,请查看修订历史记录。

标签: sharepoint list permissions calendar hide


【解决方案1】:

如果 SharePoint Designer 是一个选项,则此 blog post from Laura Rogers 显示如何按权限级别显示 SharePoint 字段。它应该与日历列表一起使用。

这将使您无需第三方产品即可完全控制解决方案。

【讨论】:

  • 我试过她的方法。不幸的是,重复发生的事件停止工作或完全搞砸了。我决定购买 SharePoint 列表表单扩展。感谢大家的帮助。
  • @ArtSerebryakov 谢谢,已解决
【解决方案2】:

我遇到的两个工具可以满足您的需求:

  • SPListDisplaySetting - “SharePoint 功能(适用于 WSS 3.0 和 MOSS)提供高级设置以自定义在新建、显示和编辑模式下呈现的列表表单。”

您可以指定某些字段仅显示在编辑页面、新页面或显示页面上,并且仅针对某些组显示,或者完全隐藏它们。

我唯一的问题是安装程序不能正常工作。但是,用户有posted working instructions on the discussion board

【讨论】:

  • 我查看了 SPListDisplaySetting 并阅读了 cmets。我认为该程序必须在生产环境中使用很多问题。但是,您对 SPListDisplaySetting 有任何问题吗?
【解决方案3】:

我在Cleverworkarounds 找到了一个很好的解决方案。代码是用 javascript 编写的,因此脚本实际上并没有删除字段,在我的情况下这是必要的,但它确实隐藏了字段。我,我需要坚持使用 SharePoint 列表表单扩展,因为我们的客户拥有一些敏感数据并且希望为某些用户删除。 Laura Rogers 的解决方案也很好,但有了 Cleverworkarounds,您就不需要使用 Sharepoint Designer。

【讨论】:

    【解决方案4】:

    一种选择是从 CodePlex 下载 Sharepoint Manager。将它安装在服务器上(它使用对象模型),您可以简单地访问一大堆东西,包括在每个字段每个列表的基础上,特定列是否隐藏在它的整体中(甚至从列表中)设置),或从显示表单、编辑表单或两者中隐藏。这是设置真/假下拉菜单并单击保存的问题。也可以选择将列设为只读。

    但就权限而言,要么全有,要么全无 - 无论您选择什么都适用于可以访问该区域的每个人。

    【讨论】:

      【解决方案5】:

      您可以使用 JQuery 隐藏日历列表中的项目。请按照以下步骤操作: - 从日历选项卡自定义列表类别中选择 -> 表单 Web 部件 -> 默认新表单 - 选择插入选项卡并从 Web 部件类别 -> 单击 Web 部件。 - 选择媒体和内容,然后选择内容编辑器并单击添加。 - 将内容编辑器放在表单下方,然后在内容编辑器内单击 - 单击格式文本选项卡 -> 标记类别 -> 单击 HTML -> 编辑 HTML 源 添加以下代码:

      <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
      <script>
      $(function() {
      $("td.ms-dttimeinput").hide();  
      $("span[title='All Day Event'] > input").attr("checked","checked");
      $("tr:has(span[title='Recurrence'])").not("tr:has(tr)").hide(); 
      $("tr:has(span[title='All Day Event'])").not("tr:has(tr)").hide();
      $("tr:has(span[title='Workspace'])").not("tr:has(tr)").hide();
      });
      </script>
      

      上面的代码也将“全天事件”设为真。 希望这会有用..

      【讨论】:

      • 它现在可以工作了,实际上 jquery 文件丢失了。
      【解决方案6】:

      我认为这有点难。不然像SharePoint Column View Permission这样的第三方工具应该不多,Bamboo也有这样的工具。

      如果您想通过代码stackoverflow.com/questions/1058232 实现它,请查看此内容。但我不确定它是否适用于日历。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多