我是一名经验丰富的开发人员,但对SP来说是新手。我有一个只有某些用户可以添加/编辑/删除事件的日历,但每个用户只能被允许添加/编辑/删除他们自己的内容。我在自己网站的“类别”列表中创建了自己的类别列表。在最原始的层面上,我想修改添加和编辑表单以自动选择类别,然后禁用该下拉列表。
一旦我弄清楚如何做到这一点,我就可以把剩下的事情搞清楚了。我发现我不能使用服务器端代码块,例如< %%>,除非我错过了设置或其他东西。
我看到了一些关于聚合日历的内容(链接已经躲过我了)?因为,每个用户基本上都有自己的日历(通过子网站)然后主站点会聚合那些?
我已经搜索了interwebz并且还没有得到答案。任何信息都会有帮助。谢谢SO社区!
答案 0 :(得分:1)
您在这里要求了几件事......通常,日历是一个SharePoint列表,安全性通常在列表级别进行管理。因此,可以添加和编辑日历的用户可以添加和编辑所有日历项目。要绕过这个,你需要实现项目级别的安全性,这会大大增加你的应用程序的复杂性,我倾向于回避。如果您选择执行此方法,则会在更改项目时触发itemAdding和itemUpdating事件。然后,您将以编程方式更新每个项目的安全性。
使用SharePoint 2010,您可以相对轻松地使用SharePoint设计器修改编辑和添加表单。但是,您对代码块是正确的。在PageParsepaths节点下的web.config中有一个设置需要更新以允许执行代码块。更多信息here。从安全角度来看,这通常是不好的做法,因为您让用户能够编辑页面,然后他们可以输入可能在您的站点上运行的恶意代码脚本。从SharePoint的角度来看,通常您会创建一个位于服务器上的用户控件(ASCX文件)来绕过此问题。然后,您可以嵌入ASCX文件,代码块将正常执行。 SharePoint应用程序目录中的大多数SharePoint文件都使用该方法,您可以使用其中一个作为模板。还有其他方式喜欢Web部件等
Babmboo Solutions有一个日历Web部件,可以进行汇总。虽然我没有尝试过,但我会调查使用内容查询Web部件的OTB功能将数据聚合在一起,看看是否会将您带到您希望的位置。
答案 1 :(得分:1)
在SP 2010中,您最多可以添加10个日历作为当前calandar视图的叠加层。
从功能区中选择“日历”选项卡,然后在“管理视图”部分中选择“日历覆盖”选项。
然后,您可以选择“新建日历”选项以添加将用于叠加层的日历。
“新建日历”按钮将显示许多选项
请注意
日历名称:只是叠加层的名称 网址:指向日历所在网站的网址。您需要点击Resolve按钮填充Lists和List View Dropdown。
您可以使用相关的用户权限创建10个单独的calandars,然后使用Overlays将它们全部显示在一起。