获取SharePoint列表列

时间:2011-12-09 11:25:32

标签: c# sharepoint-2007 custom-fields

我正在编写自定义字段类型,用户可以在其中键入站点URL,选择站点并选择所选列表的列。

如何获取列表中的列?

我现在尝试接缝工作但我收到的数据太多了。以下是我获取列的方法:

private void getColumnsOfSelectedList()
{
    DdlLookupFieldDataList.Items.Clear();

    if (!string.IsNullOrEmpty(LabelLookupFieldTargetURLText.Text))
    {
        //Get the lists of the site from the Site URL
        site = new SPSite(LabelLookupFieldTargetURLText.Text);
        SPWeb web = site.OpenWeb();

        foreach (SPList list in web.Lists)
        {
            if (list.Title == DdlLookupFieldTargetList.SelectedItem.Text)
                foreach (var item in list.Fields)
                    DdlLookupFieldDataList.Items.Add(item.ToString());
        }
    }
}

BR

1 个答案:

答案 0 :(得分:2)

我会使用SPField.Title来显示字段。根据受众,显示SPField.InternalName也是有意义的。成员SPField.AuthoringInfo返回有关该字段的更多信息。这对于具有相同标题的字段很有用。

Title
Title (linked to item with edit menu)
Title (linked to item)

括号中的文字来自创作信息字段。

<强>更新

list.Fields会返回包含SPFieldCollection个对象的SPField

foreach (SPField /* <-- */  field in list.Fields)
{
  DdlLookupFieldDataList.Items.Add(new ListItem(
    String.Format("{0} {1}", field.Title, field.AuthoringInfo), 
    field.InternalName));
}