基于行的动态列

时间:2010-10-28 11:50:23

标签: sharepoint list dynamic

我在做什么可能真的很愚蠢,如果是这样,请纠正我,但我正在尝试做以下事情:

我希望有一个列表(例如)以下项目:

List Addresses

-Name
-Address
-City
-Country

但是,根据他们的国家/地区,我想显示我想要在列表中记录的不同列。例如:

CountryColumns

(United States - SSN - Yes)
(United States - State - Yes)
(United States - Province - No)
(United Kingdom - SSN - No)
(United Kingdom - State - No)
(United Kingdom - Province - Yes)

然后,当用户在国家/地区列表中选择美国时,下次用户编辑其信息时,将显示某些列。 (也可能会显示所有内容,并且下次将隐藏带有“否”的列时)。

我已经考虑过如何做到这一点,我发现Infopath能够做到这一点。但是,这意味着我必须为每个国家/地区创建不同的视图,并显示/隐藏某些列。这似乎有点矫枉过正。

任何人都知道如何做到这一点?

问候,

3 个答案:

答案 0 :(得分:2)

以下是三个选项:

  1. 自定义内容类型。这可能是SharePoint-y最常用的方式。您可以为每个国家/地区创建内容类型,然后控制该内容类型中包含的字段。明显的缺点是你可能最终创建很多的内容类型,而且选择内容类型(特别是在创建新项目时)与从下拉列表中选择一个选项不同列表。
  2. 的Javascript / jQuery的。通过更改母版页或将内容编辑器Web部件添加到编辑表单,您可以使用javascript根据所选的国家/地区值隐藏某些字段。
  3. 自定义字段。这是最复杂的,但您可以创建一个继承自SPFieldText的自定义字段,然后根据所选的Country值管理其渲染可见性,而不是让SSN字段成为常规的单行文本字段。

答案 1 :(得分:1)

有两种方法可以修改SharePoint来实现这一点。

  1. 列出地址内容类型,然后为需要额外字段的每个国家/地区设置单独的内容类型。使用webpart使用正确的国家/地区内容类型将数据输入列表。

  2. 与上述相同,您可以使用基本地址内容类型将数据添加到列表中,而不是通过Web部件输入数据。使用项目添加事件接收器来决定将数据添加到哪种内容类型。

  3. 使用一个包含所有字段但包含自定义列表视图页面的超级内容类型,以根据县值过滤字段。

  4. 将infopath用于每个国家/地区的单独视图或每个特殊字段的部分,如果未选择所需的国家/地区,则使用条件将其隐藏。

  5. 我个人建议4.这是最简单,最快捷的方法。

答案 2 :(得分:0)

你无法开箱即用。

相关问题