今天,我有一个问题是我创建了一个计算字段后。似乎没有办法添加AllContentTypes。而DefaultView,也许我可以处理这个。我也看到了这种方法:如何将计算字段添加到AllContentType?
spList.Fields.AddFieldAsXml(spFieldUser.SchemaXml, True, SPAddFieldOptions.AddToAllContentTypes);
但在这种情况下,我不知道我可以使用与否。因为我的代码是:
//SPField tempSPField = spList.Fields.CreateNewField(createSPColumnObject.ColumnType, createSPColumnObject.ColumnName);//We can not use this code line for creating Calculated (there is no constructor for this)
SPFieldCollection collFields = spList.Fields;
string strSPFieldCalculatedName = collFields.Add(createSPColumnObject.ColumnName, SPFieldType.Calculated, false);
if (createSPColumnObject.IsAddedToDefaultView)
{
SPView spView = spList.DefaultView;
spView.ViewFields.Add(strSPFieldCalculatedName);
spView.Update();
}
SPFieldCalculated spFieldCalculated = null;
//
spFieldCalculated = (SPFieldCalculated)collFields[createSPColumnObject.ColumnName];
spFieldCalculated.ShowInDisplayForm = true;
//spFieldCalculated.ShowInEditForm = true;
spFieldCalculated.ShowInListSettings = true;
//spFieldCalculated.ShowInNewForm = true;
spFieldCalculated.ShowInViewForms = true;
//
spFieldCalculated.Description = createSPColumnObject.ColumnDescription;
spFieldCalculated.Formula = string.Format(@"={0}",createSPColumnObject.CalcFormula);
spFieldCalculated.Update();
//spList.Fields.AddFieldAsXml(spFieldCalculated.SchemaXml, createSPColumnObject.IsAddedToDefaultView, SPAddFieldOptions.AddToAllContentTypes);// also use this code line because we will get an exception with a duplicate column ID.
spFieldCalculated.OutputType = SPFieldType.Text;
spList.Update();
我完全创建了一个计算列,但是如何将它添加到allcontent类型?大家可以帮我解决这个问题吗?顺便说一句,到DefaultView,我确实喜欢上面的是对的? eveybody能让我知道吗?
我只是担心每个人都会误解?或者检查丢失的代码。那么每个人都可以清楚地看看我的代码吗?谢谢大家。
非常感谢,:)
斯坦德利阮
嗨干杯Truez,首先,感谢接听和关注我的帖子:) **我想我错过了一点信息。这就是我正在编写一个列表,其中包含列表中的计算字段,而不是为网站列创建列。 2这些东西是不同的。此外,我也根据上面的代码做了,但是无法计算字段。所以,那不是我所需要的。**非常感谢你。 – 2012-03-08 03:43:37