我想在editform.aspx 上隐藏或使某些字段只读。我按照此页面上的示例进行操作,但没有删除“原始”网络部件列表。我隐藏了原始 webpart 并从原始列表中创建了一个新的自定义列表。然后我能够在自定义列表上应用 xsl 以隐藏或使字段“只读”。不幸的是,重复发生的事件停止工作或完全搞砸了。有时我在日历视图中单击特定事件时收到错误消息。日历列表工作正常,当事件不重复时,这些字段在“编辑模式”中被隐藏或禁用。我的问题是。有没有其他方法可以隐藏或禁用日历列表中特定安全组或共享点组的项目?
6 回答
如果 SharePoint Designer 是一个选项,那么Laura Rogers 的这篇博文将展示如何按权限级别显示 SharePoint 字段。它应该与日历列表一起使用。
这将使您无需第三方产品即可完全控制解决方案。
我在Cleverworkarounds找到了一个很好的解决方案。代码是用 javascript 编写的,因此脚本实际上并没有删除字段,在我的情况下这是必要的,但它确实隐藏了字段。我,我需要坚持使用 SharePoint 列表表单扩展,因为我们的客户拥有一些敏感数据并且希望为某些用户删除。Laura Rogers 的解决方案也很好,但是有了 Cleverworkarounds,您就不需要使用 Sharepoint Designer。
我遇到了两个工具来做你正在寻找的东西:
- SPListDisplaySetting - “SharePoint 功能(适用于 WSS 3.0 和 MOSS)提供高级设置以在新、显示和编辑模式下自定义列表表单呈现。”
您可以指定某些字段仅显示在编辑、新建或显示页面上,并且仅针对某些组,或者完全隐藏它们。
我唯一的问题是安装程序不能正常工作。但是,用户已在讨论板上发布了工作说明。
- SharePoint 工具篮 - 列表列管理器- “此功能允许网站集管理员查看列表的所有列,包括隐藏/只读列,并提供列详细信息,例如内部名称、Guid、类型..”
您可以使用 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>
上面的代码还把“全天事件”检查为真。希望这会有用..
我认为要做到这一点有点困难。否则应该没有SharePoint Column View Permission这样的第三方工具,Bamboo也有这样的工具。
如果您想通过代码stackoverflow.com/questions/1058232实现它,请查看此内容。但我不确定它是否适用于日历。
一种选择是从 CodePlex 下载 Sharepoint Manager。将它安装在服务器上(它使用对象模型),您可以简单地访问一大堆东西,包括在每个字段每个列表的基础上,特定列是否隐藏在它的整体中(甚至从列表中)设置),或从显示表单、编辑表单或两者中隐藏。这是设置真/假下拉菜单并单击保存的问题。还有使列只读的选项。
但是,就权限而言,这要么全有,要么全无 - 无论您选择什么都适用于可以访问该区域的每个人。