Sharepoint如何获取Sharepoint特定字段/列的列表

时间:2010-04-15 02:08:46

标签: sharepoint sharepoint-2007

我有一个字段/列列表,其中包含Sharepoint特定字段/列,我自己的自定义字段/列,以及由其他人创建的一堆自定义字段/列(我不知道它们是什么)。我的目标是获取由其他人创建的字段/列的列表。

我的第一个障碍在于如何判断哪些是来自Sharepoint。所以我想知道有没有办法以编程方式检索Sharepoint Specific字段/列的列表?

感谢。

3 个答案:

答案 0 :(得分:2)

它不是以编程方式,但在服务器的12 Hive中,在Template / Features / fields下是一个fieldswss.xml,我认为它包含所有标准的SharePoint字段。

更具编程性的方法是遍历站点列并执行一些检查。例如,

List<string> retVal = new List<string>();
using (SPSite site = new SPSite("urlofsite")) 
{
    using (SPWeb web = site.OpenWeb())
    {
        List<string> spColGroups = new List<string>() { "Base Columns", "Core Contact and Calendar Columns", "Core Document Columns", "Core Task and Issue Columns", "Extended Columns" }

        foreach (SPField field in web.Fields)
        {
            if (spColGroups.Contains(field.Group))
            {
                retVal.Add(field.Title);
            }
        }
    }
}

列表retVal将包含属于标准SharePoint站点列组的所有站点列的名称(至少对于WSS。我不知道MOSS)。我自己的个人实践(我不知道这是否常见,但我认为这是一个非常明智的举措)是总是在与默认SharePoint列不同的组中创建自己的自定义列,因此这只会获得SharePoint列。如果您不是这种情况,则必须针对您的情况设计更有用的检查。我希望,如果这不能解决你的问题,那至少可以帮助你走上正轨。

答案 1 :(得分:0)

尝试使用SharePoint提供的列表数据检索Web服务。

http://<site>/_vti_bin/DspSts.asmx

我家里的机器上没有SharePoint来测试这个,但我会尝试“Fields”类。我明天在工作中对此进行测试。

<强>文档: http://msdn.microsoft.com/en-us/library/ms774413.aspx

答案 2 :(得分:0)

这可能不是一个详尽的清单,但SPBuiltInFieldId课程将是一个很好的起点。