编程方式创建SharePoint 2010列表间的关系
在本例中,我们将在SharePoint 2010中创建两个列表,然后通过添加查阅项类型的栏从而在列表间设置关系。请注意,下面的例子是一个控制台应用程序。
string lookupFieldName = “RelatedField”;
using (SPSite site = new SPSite(“http://SpSite”))
{
using (SPWeb web = site.OpenWeb())
{
SPListCollection lists = web.Lists;
//Creating Parent list
Guid SourceListId = lists.Add(“Parent List”,”", SPListTemplateType.GenericList);
Console.WriteLine(“Parent List Done…”);
//Creating Child List
Guid TargetListId = lists.Add(“Child List”,”",SPListTemplateType.GenericList);
Console.WriteLine(“Child List Done…”);
SPList SourceList = lists[SourceListId];
SPList TargetList = lists[TargetListId];
SPFieldCollection Fields = TargetList.Fields;
//Adding a lookup Field in Child List
Fields.AddLookup(lookupFieldName, SourceList.ID, true);
Console.WriteLine(“Lookup Field Created”);
//Adding the Restrict behaviour
SPFieldLookup NewLookupField = Fields[lookupFieldName] as SPFieldLookup;
NewLookupField.Indexed = true;
NewLookupField.LookupField = “Title”;
NewLookupField.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict;
NewLookupField.Update();
Console.WriteLine(“Lookup field integrity enforced”);
//Adding Items in the List
SPListItem NewSourceItem = SourceList.Items.Add();
NewSourceItem["Title"] = “Parent Data”;
NewSourceItem.Update();
Console.WriteLine(“Source listitem created”);
SPListItem NewTargetItem = TargetList.Items.Add();
NewTargetItem["Title"] = “Child Data”;
NewTargetItem[lookupFieldName] = new SPFieldLookupValue(1, “Source Data”);
NewTargetItem.Update();
Console.WriteLine(“Parent listitem created”);
TargetList.Update();
SourceList.Update();
}
}
参考资料
Programmatically Create Relation between SharePoint 2010 lists
浙公网安备 33010602011771号