您好,感谢您的关注!
背景
我目前有一个 C# 方法,用于循环访问 SharePoint 列表集合并返回这些 SP 列表的列表,包括它们的列/SPField 的嵌套列表。
问题
如何通过 C# 获取 SharePoint 2007 列表中仅由用户创建的字段的列表?
代码到此为止。 . .

SPSite site = SPContext.Current.Site;
        SPWeb web = site.OpenWeb();
        web.AllowUnsafeUpdates = true;
        SPListCollection lists = web.Lists;

        var PellaListCollection = new List<PellaListModel>();

        foreach (SPList l in lists) {
                var PellaList = new PellaListModel();
                var PellaListColumns = new List<PellaListColumn>();
                foreach (SPField c in l.Fields) {
                    if (c.Hidden.Equals(false))
                    {
                        var type = c.FieldTypeDefinition.TypeName.ToString();
                        var col = new PellaListColumn
                        {
                            ColumnId = c.Id,
                            ColumnDataType = type,
                            ColumnTitle = c.Title
                        };
                        PellaListColumns.Add(col);
                    }
                }
                PellaList.ListColumns = PellaListColumns;
                PellaList.ListId = l.ID;
                PellaList.ListTitle = l.Title;
                PellaList.Description = l.Description;
                PellaListCollection.Add(PellaList);
        }

        web.AllowUnsafeUpdates = false;

        return PellaListCollection;
    }
正如您所看到的,现在我正在筛选哪些 SPFields 不是“隐藏”,但这仍然返回相当多的标准 SharePoint 生成的列表字段。我只需要用户创建的字段。
谢谢!
马特

最佳答案

您正在寻找 SPFieldFromBaseType 属性。如果该字段是 List 的原始架构的一部分,则此属性为 true。

查看这个好的 SharePoint Exchange article 了解更多。

关于c# - 如何通过 C# 获取 SharePoint 2007 列表中仅由用户创建的字段的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8436954/

10-13 07:48
查看更多