0

我在部署的解决方案中有一个页面布局。页面布局还具有关联的自定义内容类型。

我希望更新此页面布局和内容类型,但仅限于网站上的特定位置。原因是对于重要的“操作更新”,我们希望能够向订阅用户发送 SMS(Sharepoint 的内置功能列表)以及通过电子邮件发送给他们。

它的工作方式是我希望添加一个布尔字段来决定是否发送 SMS,以及一个字段来放入您想要通知消息的电子邮件地址。

到目前为止,我的方法是:

  • 创建一个事件接收器,检查是否选择/填写了字段并进行实际发送。
  • 使用 2 个新字段更改布局页面。
  • 使用 2 个新字段更改内容类型。

但是,我担心网站其他部分的并发症。目前,页面布局的未来用途不是问题,只是现有用途。

我知道通过 XML 定义更新内容类型不会自动发生,所以在这方面我是安全的,但是如何将布局页面“包含”到相关的特定页面?

编辑:如何仅在编辑页面时显示这两个字段,而不是在显示页面时?目前,我的开发站点显示的编辑表单恰到好处,但是当我去显示页面时,它在布尔字段所在的位置显示“是”,并且在电子邮件字段的位置输入了任何电子邮件地址。

4

1 回答 1

0

您确定页面布局与内容类型相关联,并且它不是与内容类型相关联的页面吗?

如果您希望自动添加字段,您可以:

  1. 为您的列表创建一个由 New/Edit/Display 表单使用的自定义呈现模板 (http://weblogs.asp.net/sharadkumar/archive/2008/07/07/how-to-customize-rendering-of- sharepoint-list-form-fields-part-1.aspx)

  2. 创建一个自定义 ListFieldIterator(或使用默认值),它将自动在您的内容类型中选取新字段 (http://msdn.microsoft.com/en-us/library/aa543922.aspx)

  3. 使用 DLL 中的代码来遍历内容类型的字段,从而在代码中为您的页面创建必要的控件。如果您使用 FieldControls (http://msdn.microsoft.com/en-us/library/dd571480.aspx),它将自动为字段创建默认模板渲染(即,它将显示单选按钮、下拉框、等,由内容类型中的字段定义)。

在您的编辑中,当您说“编辑页面时”时,我假设您的意思是“查看列表的编辑页面时”,而不是“在 Sharepoint Designer 中编辑页面定义时”。

假设该假设是准确的,您可以让列表的编辑页面显示与列表的视图页面(以及列表的新页面)完全不同的内容。默认情况下,这些页面是完全单独定义的,并且是完全单独编辑的。但是,如果您使用的东西(例如 ListFieldIterator)会自动选择内容类型的字段列表,您可以为要隐藏的字段创建自定义字段控件,并为字段控件集设置视图模板什么都不显示。

于 2010-11-17T12:26:30.450 回答