【问题标题】:Programmatically create View with multiple content types以编程方式创建具有多种内容类型的视图
【发布时间】:2011-04-09 13:38:47
【问题描述】:

我有一个包含 1 种内容类型的自定义列表。该内容类型具有继承自的父内容类型。

类型 1 有 3 个字段:

字段 A, 字段 B, 字段C

Type 2有2个字段,继承Type 1:

字段 D, 字段E

我正在以编程方式创建一些视图。当我通过 SP UI 执行此操作时效果很好,没有抱怨,但是当我在 PowerShell 脚本中执行此操作时,如下所示:

$web = Get-SPWeb [Site URL]
$list = $web.Lists[ListName]

$list.Views.Add($viewName, $includeFieldsCollection, $query, 100, $true, $false)
$web.Dispose()

其中 $includeFieldsCollection 是所有字段 A-E。

我得到错误:

Exception calling "Add" with "6" argument(s): "Column 'Field A' does not exist. It may have been deleted by another user."

如何在 PowerShell 中执行此操作?它不想看到它从更高范围获得的列。如果我查看 SP UI,它们会显示得很好。

谢谢。

编辑:我必须纠正这个问题。

【问题讨论】:

  • ListName 代表什么?那里不应该是一个字符串吗?

标签: sharepoint powershell sharepoint-2010


【解决方案1】:

您确定要传递给 powershell 函数的列名称是 内部 名称吗?

http://msdn.microsoft.com/en-us/library/ms480493.aspx

通常将空格替换为_x0200_

Field A would be Field_x0200_A

【讨论】:

  • 我意识到这个问题完全是另外一回事,但这个答案是我遇到的。所以我将其标记为答案。实际问题最终是脚本的布局方式。我让它工作了!谢谢
【解决方案2】:

我会确保我正在使用的列表实际上使用了正确的内容类型和字段。您可以使用以下方法检查它们:

$list.fields | format-table

$list.contenttypes | format-table

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2021-02-12
    • 1970-01-01
    • 2011-02-26
    相关资源
    最近更新 更多