将查找字段添加到sharepoint中的内容类型

zik*_*iko 6 sharepoint content-type lookup-field

如何使用xml定义将查找字段添加到sharepoint中的内容类型?(我收到错误).

注意事项: - 将内容类型添加到文档库时,查找列表将存在. - 查找列表将始终具有相同的名称. - 查找列表在名称中有一个空格.

这是我添加到xml中的内容:

  <Field ID="{GUID}"
         Type="Lookup"
         List="$Resources:core,lists_Folder;/List%20Name"
         ShowField="Title"
         Name="MyLookupFieldName"
         DisplayName="MyLookupFieldName"
         StaticName="MyLookupFieldName"
         Hidden="FALSE"
         Required="FALSE"
         Sealed="TRUE"
         >
Run Code Online (Sandbox Code Playgroud)

当我以编程方式将内容类型添加到文档库时,我得到一个异常(没有有​​用的信息),并将以下内容记录到sharepoint日志中:

2009年8月18日17:13:从SQL Server 39.50的w3wp.exe(0x08B8)0x11B0 Windows SharePoint Services数据库6f8g意外的意外查询执行失败,错误代码8114其他错误信息包含下面."将数据类型nvarchar转换为uniqueidentifier时出错." 查询文本(如果可用):"{?= call proc_GetListMetaDataAndEventReceivers(?,?,?,?,?,?)}"

Ahm*_*med 9

幸运的是,在SharePoint 2010中,您可以通过设置所有必需的属性来声明性地执行此操作,如以下工作示例所示.

<Field Type="Lookup" DisplayName="Link Type" Description="Represents link type." 
Required="TRUE" EnforceUniqueValues="FALSE" List="Lists/Links Types" WebId="~sitecollection" 
Overwrite="TRUE" PrependId="TRUE" ShowField="Title" UnlimitedLengthInDocumentLibrary="FALSE" 
Group="Research Links Columns" ID="{a15e9fa2-4ea0-41f1-a583-b21d53cf72d3}" 
SourceID="{30650f6f-fbb8-4acc-a935-29745f5d3c59}" StaticName="Link_x0020_Type" 
Name="Link_x0020_Type" Hidden="FALSE" ReadOnly="FALSE"></Field>
Run Code Online (Sandbox Code Playgroud)

将WebId设置为具有"〜sitecollection"值并将Overwrite设置为TRUE非常重要.
更多信息


Ale*_*gas 2

问题是您需要引用列表的 GUID,而不是其标题。由于您可能不知道列表的 GUID,因此如果不执行一些自定义代码,您就无法执行此操作。

即使您没有使用 VSeWSS,dahlbyk 帖子中的最后步骤也链接到向您展示如何执行此操作。Chris O'Brien 不厌其烦地创建了一个CodePlex 项目,如果您不使用 VSeWSS,该项目将为您提供帮助。