将文件上载到Sharepoint列表+ Lookup类型列的设置值

时间:2010-06-21 18:06:39

标签: sharepoint sharepoint-2007 web-services

我正在使用Sharepoint的Copy.asmx webservice上传旧文件及其元数据。 目标是自定义列表(具有嵌套文件夹和自定义字段 - 全部为文本 - )。

文件上传还可以,他们的元数据还可以,CAML查询还可以,但是......

我的一个自定义属性是doc_type。由于时间限制,我也将其设置为文本。但是,如果用户开始创建自己的内容,我宁愿通过将此doc_type用作查找字段而不是自由文本来最大化数据健全性。

我很感激如何正确设置FieldInformation集合。

发布整个代码是过分的,但这是相关的部分。 我开始创建一个代表每个文件夹和文件的详细XML。 “文件”节点包含元数据作为属性。这段代码迭代每个节点的属性。

    foreach (XmlAttribute attr in node.Attributes) {
        if (attr.Name.StartsWith("c_")) {
            spfinWSCopy.FieldInformation fi = new spfinWSCopy.FieldInformation();
            fi.DisplayName = attr.Name;
            fi.InternalName = attr.Name;
            fi.Type = spfinWSCopy.FieldType.Text;
            fi.Value = attr.Value;

            spfields.Add(fi);

    }
}

最后,使用:

调用WS
                copyService.CopyIntoItems(destination
                                         , destinationURL
                                         , file.spfieldInfo
                                         , File.ReadAllBytes(AppSettings.getAppPropertyValue(CConstants.SOURCE_FOLDER_KEY_NAME) + "\\" + (file.destinationFolder).Replace("/","\\\\") + file.name)
                                         , out result);

很抱歉这个长篇介绍。问题是:我应该如何为Lookup字段重写以下内容?

    fi.Type = spfinWSCopy.FieldType.Text;
    fi.Value = attr.Value;

谢谢, 佩德罗

1 个答案:

答案 0 :(得分:0)

我感兴趣的是,我发现我无法在another thread in SO中使用网络服务设置查找字段。

This link详细阐述。非常令人沮丧,我会检查我的业务需求,我可能不得不进入RPC。

感谢您的倾听,无论如何:)